net: switchdev: move dev in switchdev_fdb_dump
authorVivien Didelot <vivien.didelot@savoirfairelinux.com>
Tue, 29 Sep 2015 16:07:14 +0000 (12:07 -0400)
committerDavid S. Miller <davem@davemloft.net>
Wed, 30 Sep 2015 04:31:59 +0000 (21:31 -0700)
The FDB dump callback requires the related net_device so move it to the
struct switchdev_fdb_dump superset instead of using a callback param.

With this done, it'll be simpler to change the dump function signature.

Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/switchdev/switchdev.c

index 56d34edc74426b4c410cd5b4e977f4a315731da1..c0e2047f89845d683018d79caa8e1d9ffe7f93d5 100644 (file)
@@ -858,6 +858,7 @@ EXPORT_SYMBOL_GPL(switchdev_port_fdb_del);
 
 struct switchdev_fdb_dump {
        struct switchdev_obj obj;
+       struct net_device *dev;
        struct sk_buff *skb;
        struct netlink_callback *cb;
        int idx;
@@ -887,7 +888,7 @@ static int switchdev_port_fdb_dump_cb(struct net_device *dev,
        ndm->ndm_pad2    = 0;
        ndm->ndm_flags   = NTF_SELF;
        ndm->ndm_type    = 0;
-       ndm->ndm_ifindex = dev->ifindex;
+       ndm->ndm_ifindex = dump->dev->ifindex;
        ndm->ndm_state   = obj->u.fdb.ndm_state;
 
        if (nla_put(dump->skb, NDA_LLADDR, ETH_ALEN, obj->u.fdb.addr))
@@ -927,6 +928,7 @@ int switchdev_port_fdb_dump(struct sk_buff *skb, struct netlink_callback *cb,
                        .id = SWITCHDEV_OBJ_PORT_FDB,
                        .cb = switchdev_port_fdb_dump_cb,
                },
+               .dev = dev,
                .skb = skb,
                .cb = cb,
                .idx = idx,