: Fix egress priority mappings leak.
Subsystems (2)
PATCH 1/1 : Fix egress priority mappings leak.
These entries are allocated in vlan_dev_set_egress_priority, but are never released and leaks on vlan device removal.
Drop these in vlan's ->uninit callback - after the device is brought down and everyone is notified about it is going to be unregistered.
Found during testing vlan netnsization patchset.
---
net/8021q/vlan_dev.c +15 -0
@@ -692,6 +692,20 @@ static int vlan_dev_init(struct net_device *dev)return 0 ; } +static void vlan_dev_uninit (struct net_device *dev) +{ +struct vlan_priority_tci_mapping *pm; +struct vlan_dev_info *vlan =vlan_dev_info (dev); +int i; + +for (i =0 ; i <ARRAY_SIZE (vlan->egress_priority_map); i++) { +while ((pm = vlan->egress_priority_map[i]) !=NULL ) { + vlan->egress_priority_map[i] = pm->next; +kfree (pm); + } + } +} +void vlan_setup (struct net_device *dev) {ether_setup (dev);
@@ -701,6 +715,7 @@ void vlan_setup(struct net_device *dev) dev->change_mtu = vlan_dev_change_mtu; dev->init = vlan_dev_init; + dev->uninit = vlan_dev_uninit; dev->open = vlan_dev_open; dev->stop = vlan_dev_stop; dev->set_mac_address = vlan_dev_set_mac_address;
Quoted 8 lines · Pavel Emelyanov
These entries are allocated in
vlan_dev_set_egress_priority, but are never released and leaks on vlan device removal.Drop these in vlan's ->uninit callback - after the device is brought down and everyone is notified about it is going to be unregistered.
Found during testing vlan netnsization patchset.
Signed-off-by Pavel Emelyanov <[email protected]>
Good catch, thanks.
From: Patrick McHardy <[email protected]>
Date: Fri, 04 Apr 2008 11:45:58 +0200
Quoted 8 lines
Quoted 7 lines · Pavel Emelyanov
These entries are allocated in
vlan_dev_set_egress_priority, but are never released and leaks on vlan device removal.Drop these in vlan's ->uninit callback - after the device is brought down and everyone is notified about it is going to be unregistered.
Quoted 7 lines
Quoted 3 lines
Found during testing vlan netnsization patchset.
Signed-off-by Pavel Emelyanov <[email protected]>Good catch, thanks.
Acked-by Patrick McHardy <[email protected]>
Applied, thanks a lot.