* [PATCH net-next v4 1/2] switchdev: fix: erasing too much of vlan obj when handling multiple vlan specs @ 2015-10-29 6:17 sfeldma 2015-10-29 6:17 ` [PATCH net-next v4 2/2] switchdev: fix: pass correct obj size when deferring obj add sfeldma 2015-10-30 11:23 ` [PATCH net-next v4 1/2] switchdev: fix: erasing too much of vlan obj when handling multiple vlan specs David Miller 0 siblings, 2 replies; 4+ messages in thread From: sfeldma @ 2015-10-29 6:17 UTC (permalink / raw) To: netdev; +Cc: jiri, vivien.didelot From: Scott Feldman <sfeldma@gmail.com> When adding vlans with multiple IFLA_BRIDGE_VLAN_INFO attrs set in AFSPEC, we would wipe the vlan obj struct after the first IFLA_BRIDGE_VLAN_INFO. Fix this by only clearing what's necessary on each IFLA_BRIDGE_VLAN_INFO iteration. Fixes: 9e8f4a54 ("switchdev: push object ID back to object structure") Signed-off-by: Scott Feldman <sfeldma@gmail.com> Acked-by: Jiri Pirko <jiri@mellanox.com> --- v3->v4: rebase sync v2->v3: no change v1->v2: add Jiri's Acked-by net/switchdev/switchdev.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/net/switchdev/switchdev.c b/net/switchdev/switchdev.c index 1eb76956..8d3e6c3 100644 --- a/net/switchdev/switchdev.c +++ b/net/switchdev/switchdev.c @@ -866,7 +866,7 @@ static int switchdev_port_br_afspec(struct net_device *dev, err = f(dev, &vlan.obj); if (err) return err; - memset(&vlan, 0, sizeof(vlan)); + vlan.vid_begin = 0; } else { if (vlan.vid_begin) return -EINVAL; @@ -875,7 +875,7 @@ static int switchdev_port_br_afspec(struct net_device *dev, err = f(dev, &vlan.obj); if (err) return err; - memset(&vlan, 0, sizeof(vlan)); + vlan.vid_begin = 0; } } -- 1.7.10.4 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH net-next v4 2/2] switchdev: fix: pass correct obj size when deferring obj add 2015-10-29 6:17 [PATCH net-next v4 1/2] switchdev: fix: erasing too much of vlan obj when handling multiple vlan specs sfeldma @ 2015-10-29 6:17 ` sfeldma 2015-10-30 11:24 ` David Miller 2015-10-30 11:23 ` [PATCH net-next v4 1/2] switchdev: fix: erasing too much of vlan obj when handling multiple vlan specs David Miller 1 sibling, 1 reply; 4+ messages in thread From: sfeldma @ 2015-10-29 6:17 UTC (permalink / raw) To: netdev; +Cc: jiri, vivien.didelot From: Scott Feldman <sfeldma@gmail.com> Fixes: 4d429c5dd ("switchdev: introduce possibility to defer obj_add/del") Signed-off-by: Scott Feldman <sfeldma@gmail.com> Acked-by: Jiri Pirko <jiri@mellanox.com> --- v3->v4: rebase sync v2->v3: add Jiri's Acked-by v1->v2: use correct "Fixes" tag, use common func to calc obj size for add/del net/switchdev/switchdev.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/net/switchdev/switchdev.c b/net/switchdev/switchdev.c index 8d3e6c3..2433e75 100644 --- a/net/switchdev/switchdev.c +++ b/net/switchdev/switchdev.c @@ -337,6 +337,21 @@ int switchdev_port_attr_set(struct net_device *dev, } EXPORT_SYMBOL_GPL(switchdev_port_attr_set); +static size_t switchdev_obj_size(const struct switchdev_obj *obj) +{ + switch (obj->id) { + case SWITCHDEV_OBJ_ID_PORT_VLAN: + return sizeof(struct switchdev_obj_port_vlan); + case SWITCHDEV_OBJ_ID_IPV4_FIB: + return sizeof(struct switchdev_obj_ipv4_fib); + case SWITCHDEV_OBJ_ID_PORT_FDB: + return sizeof(struct switchdev_obj_port_fdb); + default: + BUG(); + } + return 0; +} + static int __switchdev_port_obj_add(struct net_device *dev, const struct switchdev_obj *obj, struct switchdev_trans *trans) @@ -422,7 +437,7 @@ static void switchdev_port_obj_add_deferred(struct net_device *dev, static int switchdev_port_obj_add_defer(struct net_device *dev, const struct switchdev_obj *obj) { - return switchdev_deferred_enqueue(dev, obj, sizeof(*obj), + return switchdev_deferred_enqueue(dev, obj, switchdev_obj_size(obj), switchdev_port_obj_add_deferred); } @@ -490,7 +505,7 @@ static void switchdev_port_obj_del_deferred(struct net_device *dev, static int switchdev_port_obj_del_defer(struct net_device *dev, const struct switchdev_obj *obj) { - return switchdev_deferred_enqueue(dev, obj, sizeof(*obj), + return switchdev_deferred_enqueue(dev, obj, switchdev_obj_size(obj), switchdev_port_obj_del_deferred); } -- 1.7.10.4 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH net-next v4 2/2] switchdev: fix: pass correct obj size when deferring obj add 2015-10-29 6:17 ` [PATCH net-next v4 2/2] switchdev: fix: pass correct obj size when deferring obj add sfeldma @ 2015-10-30 11:24 ` David Miller 0 siblings, 0 replies; 4+ messages in thread From: David Miller @ 2015-10-30 11:24 UTC (permalink / raw) To: sfeldma; +Cc: netdev, jiri, vivien.didelot From: sfeldma@gmail.com Date: Wed, 28 Oct 2015 23:17:31 -0700 > From: Scott Feldman <sfeldma@gmail.com> > > Fixes: 4d429c5dd ("switchdev: introduce possibility to defer obj_add/del") > Signed-off-by: Scott Feldman <sfeldma@gmail.com> > Acked-by: Jiri Pirko <jiri@mellanox.com> Applied. ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH net-next v4 1/2] switchdev: fix: erasing too much of vlan obj when handling multiple vlan specs 2015-10-29 6:17 [PATCH net-next v4 1/2] switchdev: fix: erasing too much of vlan obj when handling multiple vlan specs sfeldma 2015-10-29 6:17 ` [PATCH net-next v4 2/2] switchdev: fix: pass correct obj size when deferring obj add sfeldma @ 2015-10-30 11:23 ` David Miller 1 sibling, 0 replies; 4+ messages in thread From: David Miller @ 2015-10-30 11:23 UTC (permalink / raw) To: sfeldma; +Cc: netdev, jiri, vivien.didelot From: sfeldma@gmail.com Date: Wed, 28 Oct 2015 23:17:30 -0700 > From: Scott Feldman <sfeldma@gmail.com> > > When adding vlans with multiple IFLA_BRIDGE_VLAN_INFO attrs set in AFSPEC, > we would wipe the vlan obj struct after the first IFLA_BRIDGE_VLAN_INFO. > Fix this by only clearing what's necessary on each IFLA_BRIDGE_VLAN_INFO > iteration. > > Fixes: 9e8f4a54 ("switchdev: push object ID back to object structure") > Signed-off-by: Scott Feldman <sfeldma@gmail.com> > Acked-by: Jiri Pirko <jiri@mellanox.com> Applied. ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2015-10-30 11:24 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2015-10-29 6:17 [PATCH net-next v4 1/2] switchdev: fix: erasing too much of vlan obj when handling multiple vlan specs sfeldma 2015-10-29 6:17 ` [PATCH net-next v4 2/2] switchdev: fix: pass correct obj size when deferring obj add sfeldma 2015-10-30 11:24 ` David Miller 2015-10-30 11:23 ` [PATCH net-next v4 1/2] switchdev: fix: erasing too much of vlan obj when handling multiple vlan specs David Miller
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).