• Pravin B Shelar's avatar
    vxlan: Fix kernel panic on device delete. · f011baf9
    Pravin B Shelar authored
    On vxlan device create if socket create fails vxlan device is not
    added to hash table. Therefore we need to check if device
    is in hashtable before we delete it from hlist.
    Following patch avoid the crash. net-next already has this fix.
    
    ---8<---
    BUG: unable to handle kernel NULL pointer dereference at           (null)
    IP: [<ffffffffa05f9ca7>] vxlan_dellink+0x77/0xf0 [vxlan]
    PGD 42b2d9067 PUD 42e04c067 PMD 0
    Oops: 0002 [#1] SMP
    Modules linked in: vxlan(-)
    Hardware name: Dell Inc. PowerEdge R620/0KCKR5, BIOS 1.4.8 10/25/2012
    task: ffff88042ecf8760 ti: ffff88042f106000 task.ti: ffff88042f106000
    RIP: 0010:[<ffffffffa05f9ca7>]  [<ffffffffa05f9ca7>]
    vxlan_dellink+0x77/0xf0 [vxlan]
    RSP: 0018:ffff88042f107e28  EFLAGS: 00010246
    RAX: 0000000000000000 RBX: ffff88082af08000 RCX: ffff88083fd80000
    RDX: 0000000000000000 RSI: ffff88042f107e58 RDI: ffff88042e12f810
    RBP: ffff88042f107e48 R08: ffffffff8166eca0 R09: 0000000000000000
    R10: 0000000000000001 R11: 0000000000000000 R12: ffff88082af087c0
    R13: ffff88042e12f000 R14: ffff88042f107e58 R15: ffff88042f107e58
    FS:  00007f4ed2de7700(0000) GS:ffff88043fc80000(0000)
    knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 0000000000000000 CR3: 000000042e076000 CR4: 00000000000407e0
    Stack:
     ffff88082af08000 ffffffff81654848 ffffffffa05fb4e0 ffffffff81654780
     ffff88042f107e98 ffffffff813b9c7a ffff88042f107e58 ffff88042f107e58
     ffff88042f107e88 ffffffffa05fb4e0 ffffffffa05fb780 ffff88042f107f18
    Call Trace:
     [<ffffffff813b9c7a>] __rtnl_link_unregister+0xca/0xd0
     [<ffffffff813bb0e9>] rtnl_link_unregister+0x19/0x30
     [<ffffffffa05faa4c>] vxlan_cleanup_module+0x10/0x2f [vxlan]
     [<ffffffff81099fef>] SyS_delete_module+0x1cf/0x2c0
     [<ffffffff8146c069>] ? do_page_fault+0x9/0x10
     [<ffffffff8146f012>] system_call_fastpath+0x16/0x1b
    Code: 4d 85 ed 0f 84 95 00 00 00 4c 8d a7 c0 07 00 00 49 8d bd 10 08 00
    00 e8 28 e8 e6 e0 48 8b 83 c0 07 00 00 49 8b 54 24 08 48 85 c0 <48> 89
    02 74 04 48 89 50 08 49 b8 00 02 20 00 00 00 ad de 4d 89
    RIP  [<ffffffffa05f9ca7>] vxlan_dellink+0x77/0xf0 [vxlan]
     RSP <ffff88042f107e28>
    CR2: 0000000000000000
    Signed-off-by: default avatarPravin B Shelar <pshelar@nicira.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    f011baf9
vxlan.c 48.2 KB