summaryrefslogtreecommitdiffstats
path: root/net/bridge/br_fdb.c
diff options
context:
space:
mode:
authorVivien Didelot2015-09-29 18:07:17 +0200
committerDavid S. Miller2015-09-30 06:31:59 +0200
commitab06900230181b5a717b1e1a39c44e96f6292e71 (patch)
tree7fe59fb7ebaa3674c4d741d8239809d01fa3acfe /net/bridge/br_fdb.c
parentnet: switchdev: pass callback to dump operation (diff)
downloadkernel-qcow2-linux-ab06900230181b5a717b1e1a39c44e96f6292e71.tar.gz
kernel-qcow2-linux-ab06900230181b5a717b1e1a39c44e96f6292e71.tar.xz
kernel-qcow2-linux-ab06900230181b5a717b1e1a39c44e96f6292e71.zip
net: switchdev: abstract object in add/del ops
Similar to the notifier_call callback of a notifier_block, change the function signature of switchdev add and del operations to: int switchdev_port_obj_add/del(struct net_device *dev, enum switchdev_obj_id id, void *obj); This allows the caller to pass a specific switchdev_obj_* structure instead of the generic switchdev_obj one. Drivers implementation of these operations and switchdev have been changed accordingly. Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/bridge/br_fdb.c')
-rw-r--r--net/bridge/br_fdb.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/net/bridge/br_fdb.c b/net/bridge/br_fdb.c
index 41de11e2eb11..7826782d62ab 100644
--- a/net/bridge/br_fdb.c
+++ b/net/bridge/br_fdb.c
@@ -133,15 +133,12 @@ static void fdb_del_hw_addr(struct net_bridge *br, const unsigned char *addr)
static void fdb_del_external_learn(struct net_bridge_fdb_entry *f)
{
- struct switchdev_obj obj = {
- .id = SWITCHDEV_OBJ_PORT_FDB,
- .u.fdb = {
- .addr = f->addr.addr,
- .vid = f->vlan_id,
- },
+ struct switchdev_obj_fdb fdb = {
+ .addr = f->addr.addr,
+ .vid = f->vlan_id,
};
- switchdev_port_obj_del(f->dst->dev, &obj);
+ switchdev_port_obj_del(f->dst->dev, SWITCHDEV_OBJ_PORT_FDB, &fdb);
}
static void fdb_delete(struct net_bridge *br, struct net_bridge_fdb_entry *f)