diff options
author | Scott Feldman <sfeldma@gmail.com> | 2015-10-28 23:17:30 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-10-30 20:23:35 +0900 |
commit | 3a7bde55a11c4a22a6ccfc487993d621ae8e3688 (patch) | |
tree | 3a9eefdd713211abe2e81e308cc679d3bd5b2c7c /net/switchdev | |
parent | 740215ddb5b3faa0006505de073654cc50e9a299 (diff) | |
download | linux-3a7bde55a11c4a22a6ccfc487993d621ae8e3688.tar.gz linux-3a7bde55a11c4a22a6ccfc487993d621ae8e3688.tar.bz2 linux-3a7bde55a11c4a22a6ccfc487993d621ae8e3688.zip |
switchdev: fix: erasing too much of vlan obj when handling multiple vlan specs
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>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/switchdev')
-rw-r--r-- | net/switchdev/switchdev.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/switchdev/switchdev.c b/net/switchdev/switchdev.c index 8950d39af341..d6b4a84a4a79 100644 --- a/net/switchdev/switchdev.c +++ b/net/switchdev/switchdev.c @@ -869,7 +869,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; @@ -878,7 +878,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; } } |