net: Fix memory leak - vlan_info struct
In driver reload test there is a memory leak. The structure vlan_info was not freed when the driver was removed. It was not released since the nr_vids var is one after last vlan was removed. The nr_vids is one, since vlan zero is added to the interface when the interface is being set, but the vlan zero is not deleted at unregister. Fix - delete vlan zero when we unregister the device. Signed-off-by: Amir Hanania <amir.hanania@intel.com> Acked-by: John Fastabend <john.r.fastabend@intel.com> Tested-by: Aaron Brown <aaron.f.brown@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
941a46a29c
commit
efc73f4bbc
@ -403,6 +403,9 @@ static int vlan_device_event(struct notifier_block *unused, unsigned long event,
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case NETDEV_DOWN:
|
case NETDEV_DOWN:
|
||||||
|
if (dev->features & NETIF_F_HW_VLAN_FILTER)
|
||||||
|
vlan_vid_del(dev, 0);
|
||||||
|
|
||||||
/* Put all VLANs for this dev in the down state too. */
|
/* Put all VLANs for this dev in the down state too. */
|
||||||
for (i = 0; i < VLAN_N_VID; i++) {
|
for (i = 0; i < VLAN_N_VID; i++) {
|
||||||
vlandev = vlan_group_get_device(grp, i);
|
vlandev = vlan_group_get_device(grp, i);
|
||||||
|
Loading…
Reference in New Issue
Block a user