• Pravin B Shelar's avatar
    openvswitch: Fix net exit. · 488da593
    Pravin B Shelar authored
    [ Upstream commit 7b4577a9 ]
    
    Open vSwitch allows moving internal vport to different namespace
    while still connected to the bridge. But when namespace deleted
    OVS does not detach these vports, that results in dangling
    pointer to netdevice which causes kernel panic as follows.
    This issue is fixed by detaching all ovs ports from the deleted
    namespace at net-exit.
    
    BUG: unable to handle kernel NULL pointer dereference at 0000000000000028
    IP: [<ffffffffa0aadaa5>] ovs_vport_locate+0x35/0x80 [openvswitch]
    Oops: 0000 [#1] SMP
    Call Trace:
     [<ffffffffa0aa6391>] lookup_vport+0x21/0xd0 [openvswitch]
     [<ffffffffa0aa65f9>] ovs_vport_cmd_get+0x59/0xf0 [openvswitch]
     [<ffffffff8167e07c>] genl_family_rcv_msg+0x1bc/0x3e0
     [<ffffffff8167e319>] genl_rcv_msg+0x79/0xc0
     [<ffffffff8167d919>] netlink_rcv_skb+0xb9/0xe0
     [<ffffffff8167deac>] genl_rcv+0x2c/0x40
     [<ffffffff8167cffd>] netlink_unicast+0x12d/0x1c0
     [<ffffffff8167d3da>] netlink_sendmsg+0x34a/0x6b0
     [<ffffffff8162e140>] sock_sendmsg+0xa0/0xe0
     [<ffffffff8162e5e8>] ___sys_sendmsg+0x408/0x420
     [<ffffffff8162f541>] __sys_sendmsg+0x51/0x90
     [<ffffffff8162f592>] SyS_sendmsg+0x12/0x20
     [<ffffffff81764ee9>] system_call_fastpath+0x12/0x17
    Reported-by: default avatarAssaf Muller <amuller@redhat.com>
    Fixes: 46df7b81("openvswitch: Add support for network namespaces.")
    Signed-off-by: default avatarPravin B Shelar <pshelar@nicira.com>
    Reviewed-by: default avatarThomas Graf <tgraf@noironetworks.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    488da593
vport.h 7.43 KB