aboutsummaryrefslogtreecommitdiffstats
path: root/net/switchdev/switchdev.c
diff options
context:
space:
mode:
authorScott Feldman <[email protected]>2015-10-29 06:17:30 +0000
committerDavid S. Miller <[email protected]>2015-10-30 11:23:35 +0000
commit3a7bde55a11c4a22a6ccfc487993d621ae8e3688 (patch)
tree3a9eefdd713211abe2e81e308cc679d3bd5b2c7c /net/switchdev/switchdev.c
parentMerge tag 'nfc-next-4.4-2' of git://git.kernel.org/pub/scm/linux/kernel/git/s... (diff)
downloadkernel-3a7bde55a11c4a22a6ccfc487993d621ae8e3688.tar.gz
kernel-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 <[email protected]> Acked-by: Jiri Pirko <[email protected]> Signed-off-by: David S. Miller <[email protected]>
Diffstat (limited to 'net/switchdev/switchdev.c')
-rw-r--r--net/switchdev/switchdev.c4
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;
}
}