Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3a7bde55 authored by Scott Feldman's avatar Scott Feldman Committed by David S. Miller
Browse files

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: default avatarScott Feldman <sfeldma@gmail.com>
Acked-by: default avatarJiri Pirko <jiri@mellanox.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 740215dd
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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;
		}
	}