macvlan: Fix memleak on device removal/crash on module removal
authorPatrick McHardy <kaber@trash.net>
Thu, 8 May 2008 08:13:31 +0000 (01:13 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 15 May 2008 14:50:02 +0000 (07:50 -0700)
commit781ce5ffe1ff6b5b288575d4d42f46cb7a25b175
treeb1edd2f4087ba65b7d20707d83f46a218d8377d5
parent734bf48fe5276f319464fd30dc4a046a29d2b94a
macvlan: Fix memleak on device removal/crash on module removal

[ Upstream commit: 7312096454b6cd71267eaa3d0efb408e449e9ff3 ]

As noticed by Ben Greear, macvlan crashes the kernel when unloading the
module. The reason is that it tries to clean up the macvlan_port pointer
on the macvlan device itself instead of the underlying device. A non-NULL
pointer is taken as indication that the macvlan_handle_frame_hook is
valid, when receiving the next packet on the underlying device it tries
to call the NULL hook and crashes.

Clean up the macvlan_port on the correct device to fix this.

Signed-off-by; Patrick McHardy <kaber@trash.net>
Tested-by: Ben Greear <greearb@candelatech.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/net/macvlan.c