summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Feldman <sfeldma@gmail.com>2015-10-28 23:17:30 -0700
committerDavid S. Miller <davem@davemloft.net>2015-10-30 20:23:35 +0900
commit3a7bde55a11c4a22a6ccfc487993d621ae8e3688 (patch)
tree3a9eefdd713211abe2e81e308cc679d3bd5b2c7c
parent740215ddb5b3faa0006505de073654cc50e9a299 (diff)
downloadlinux-rpi3-3a7bde55a11c4a22a6ccfc487993d621ae8e3688.tar.gz
linux-rpi3-3a7bde55a11c4a22a6ccfc487993d621ae8e3688.tar.bz2
linux-rpi3-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>
-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;
}
}