Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751814AbdH1TXR (ORCPT ); Mon, 28 Aug 2017 15:23:17 -0400 Received: from mail.savoirfairelinux.com ([208.88.110.44]:36468 "EHLO mail.savoirfairelinux.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751324AbdH1TVl (ORCPT ); Mon, 28 Aug 2017 15:21:41 -0400 From: Vivien Didelot To: netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org, kernel@savoirfairelinux.com, "David S. Miller" , Florian Fainelli , Andrew Lunn , Egil Hjelmeland , John Crispin , Woojung Huh , Sean Wang , Nikita Yushchenko , Chris Healy , Vivien Didelot Subject: [PATCH net-next v2 08/10] net: dsa: debugfs: add port mdb Date: Mon, 28 Aug 2017 15:17:46 -0400 Message-Id: <20170828191748.19492-9-vivien.didelot@savoirfairelinux.com> X-Mailer: git-send-email 2.14.1 In-Reply-To: <20170828191748.19492-1-vivien.didelot@savoirfairelinux.com> References: <20170828191748.19492-1-vivien.didelot@savoirfairelinux.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1581 Lines: 52 Add a debug filesystem "mdb" entry to query a port's hardware MDB entries through the .port_mdb_dump switch operation. This is really convenient to query directly the hardware or inspect DSA or CPU links, since these ports are not exposed to userspace. Signed-off-by: Vivien Didelot Reviewed-by: Florian Fainelli Reviewed-by: Andrew Lunn --- net/dsa/debugfs.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/net/dsa/debugfs.c b/net/dsa/debugfs.c index 59c09a67bc23..bed8e1d5cfe1 100644 --- a/net/dsa/debugfs.c +++ b/net/dsa/debugfs.c @@ -135,6 +135,20 @@ static const struct dsa_debugfs_ops dsa_debugfs_fdb_ops = { .read = dsa_debugfs_fdb_read, }; +static int dsa_debugfs_mdb_read(struct dsa_switch *ds, int id, + struct seq_file *seq) +{ + if (!ds->ops->port_mdb_dump) + return -EOPNOTSUPP; + + /* same callback as for FDB dump */ + return ds->ops->port_mdb_dump(ds, id, dsa_debugfs_fdb_dump_cb, seq); +} + +static const struct dsa_debugfs_ops dsa_debugfs_mdb_ops = { + .read = dsa_debugfs_mdb_read, +}; + static void dsa_debugfs_regs_read_count(struct dsa_switch *ds, int id, struct seq_file *seq, int count) { @@ -253,6 +267,11 @@ static int dsa_debugfs_create_port(struct dsa_switch *ds, int port) if (err) return err; + err = dsa_debugfs_create_file(ds, dir, "mdb", port, + &dsa_debugfs_mdb_ops); + if (err) + return err; + err = dsa_debugfs_create_file(ds, dir, "regs", port, &dsa_debugfs_regs_ops); if (err) -- 2.14.1