lkml.org 
[lkml]   [2008]   [May]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch 14/37] macvlan: Fix memleak on device removal/crash on module removal
    2.6.25-stable review patch.  If anyone has any objections, please let us
    know.

    ------------------
    From: Patrick McHardy <kaber@trash.net>

    [ 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 | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    --- a/drivers/net/macvlan.c
    +++ b/drivers/net/macvlan.c
    @@ -450,7 +450,7 @@ static void macvlan_dellink(struct net_d
    unregister_netdevice(dev);

    if (list_empty(&port->vlans))
    - macvlan_port_destroy(dev);
    + macvlan_port_destroy(port->dev);
    }

    static struct rtnl_link_ops macvlan_link_ops __read_mostly = {
    --


    \
     
     \ /
      Last update: 2008-05-13 22:21    [W:0.020 / U:0.036 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site