Re: [patch net-next RFC 07/12] dsa: implement ndo_swdev_get_id
From: Florian Fainelli <f.fainelli@gmail.com>
Date: 2014-08-21 16:56:54
2014-08-21 9:19 GMT-07:00 Jiri Pirko [off-list ref]:
quoted hunk ↗ jump to hunk
Signed-off-by: Jiri Pirko <jiri@resnulli.us> --- net/dsa/Kconfig | 2 +- net/dsa/slave.c | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-)diff --git a/net/dsa/Kconfig b/net/dsa/Kconfig index f5eede1..66c445a 100644 --- a/net/dsa/Kconfig +++ b/net/dsa/Kconfig@@ -1,6 +1,6 @@ config HAVE_NET_DSA def_bool y - depends on NETDEVICES && !S390 + depends on NETDEVICES && NET_SWITCHDEV && !S390 # Drivers must select NET_DSA and the appropriate tagging formatdiff --git a/net/dsa/slave.c b/net/dsa/slave.c index 45a1e34..e069ba3 100644 --- a/net/dsa/slave.c +++ b/net/dsa/slave.c@@ -171,6 +171,19 @@ static int dsa_slave_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) return -EOPNOTSUPP; } +static int dsa_slave_swdev_get_id(struct net_device *dev, + struct netdev_phys_item_id *psid) +{ + struct dsa_slave_priv *p = netdev_priv(dev); + struct dsa_switch *ds = p->parent; + u64 tmp = (u64) ds; + + /* TODO: add more sophisticated id generation */ + memcpy(&psid->id, &tmp, sizeof(tmp)); + psid->id_len = sizeof(tmp);
There is already an unique id generated, which is the index in the switch tree, and which is stored in struct dsa_switch, so this could probably be simplified to: psid->id = ds->index -- Florian