linux-2.4: vlan: Slab memleak fix
Subsystems (2)
PATCH 1/1 linux-2.4: vlan: Slab memleak fix
Author: Arne Redlich <[email protected]>
Fix slab memleak on wan service restart
Signed-off-by Arne Redlich <[email protected]>
Signed-off-by Frank Seidel <[email protected]>
--- net/8021q/vlan_dev.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-)
net/8021q/vlan_dev.c +21 -1
@@ -548,6 +548,22 @@ int vlan_dev_set_ingress_priority(char *return -EINVAL ; } +/* Remove all egress_priority_map hash table entries. --redlicha */ +static void vlan_dev_destroy_egress_priority_map (struct net_device *dev) +{ +struct vlan_dev_info *info =VLAN_DEV_INFO (dev); +struct vlan_priority_tci_mapping *m; +int i; + +for (i =0 ; i <ARRAY_SIZE (info->egress_priority_map); i++) { +while ((m = info->egress_priority_map[i])) { + info->egress_priority_map[i] = + info->egress_priority_map[i]->next; +kfree (m); + } + } +} +int vlan_dev_set_egress_priority (char *dev_name,__u32 skb_prio,short vlan_prio) {struct net_device *dev =dev_get_by_name (dev_name);
@@ -826,7 +842,11 @@ void vlan_dev_destruct(struct net_deviceif (dev->priv) {if (VLAN_DEV_INFO (dev)->dent)BUG (); - +/* +* Don't leak the hash table entries in +* VLAN_DEV_INFO(dev)->egress_priority_map! --redlicha +*/ +vlan_dev_destroy_egress_priority_map (dev);kfree (dev->priv); dev->priv =NULL ; }