* Re: [PATCH][VLAN]: Fix egress priority mappings leak.
2008-04-04 10:07 [PATCH][VLAN]: Fix egress priority mappings leak Pavel Emelyanov
@ 2008-04-04 9:45 ` Patrick McHardy
2008-04-04 19:45 ` David Miller
0 siblings, 1 reply; 3+ messages in thread
From: Patrick McHardy @ 2008-04-04 9:45 UTC (permalink / raw)
To: Pavel Emelyanov; +Cc: David Miller, Linux Netdev List, devel
Pavel Emelyanov wrote:
> 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 <xemul@openvz.org>
Good catch, thanks.
Acked-by: Patrick McHardy <kaber@trash.net>
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH][VLAN]: Fix egress priority mappings leak.
@ 2008-04-04 10:07 Pavel Emelyanov
2008-04-04 9:45 ` Patrick McHardy
0 siblings, 1 reply; 3+ messages in thread
From: Pavel Emelyanov @ 2008-04-04 10:07 UTC (permalink / raw)
To: David Miller, Patrick McHardy; +Cc: Linux Netdev List, devel
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 <xemul@openvz.org>
---
diff --git a/net/8021q/vlan_dev.c b/net/8021q/vlan_dev.c
index 480ea90..41a76a0 100644
--- a/net/8021q/vlan_dev.c
+++ b/net/8021q/vlan_dev.c
@@ -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;
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH][VLAN]: Fix egress priority mappings leak.
2008-04-04 9:45 ` Patrick McHardy
@ 2008-04-04 19:45 ` David Miller
0 siblings, 0 replies; 3+ messages in thread
From: David Miller @ 2008-04-04 19:45 UTC (permalink / raw)
To: kaber; +Cc: xemul, netdev, devel
From: Patrick McHardy <kaber@trash.net>
Date: Fri, 04 Apr 2008 11:45:58 +0200
> Pavel Emelyanov wrote:
> > 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 <xemul@openvz.org>
>
> Good catch, thanks.
>
> Acked-by: Patrick McHardy <kaber@trash.net>
Applied, thanks a lot.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2008-04-04 19:45 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-04-04 10:07 [PATCH][VLAN]: Fix egress priority mappings leak Pavel Emelyanov
2008-04-04 9:45 ` Patrick McHardy
2008-04-04 19:45 ` David Miller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).