• Eric Dumazet's avatar
    net/ipv6: fix lock imbalance in ip6_route_del() · 9e575010
    Eric Dumazet authored
    WARNING: lock held when returning to user space!
    4.17.0-rc3+ #37 Not tainted
    
    syz-executor1/27662 is leaving the kernel with locks still held!
    1 lock held by syz-executor1/27662:
     #0: 00000000f661aee7 (rcu_read_lock){....}, at: ip6_route_del+0xea/0x13f0 net/ipv6/route.c:3206
    BUG: scheduling while atomic: syz-executor1/27662/0x00000002
    INFO: lockdep is turned off.
    Modules linked in:
    Kernel panic - not syncing: scheduling while atomic
    
    CPU: 1 PID: 27662 Comm: syz-executor1 Not tainted 4.17.0-rc3+ #37
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    Call Trace:
     __dump_stack lib/dump_stack.c:77 [inline]
     dump_stack+0x1b9/0x294 lib/dump_stack.c:113
     panic+0x22f/0x4de kernel/panic.c:184
     __schedule_bug.cold.85+0xdf/0xdf kernel/sched/core.c:3290
     schedule_debug kernel/sched/core.c:3307 [inline]
     __schedule+0x139e/0x1e30 kernel/sched/core.c:3412
     schedule+0xef/0x430 kernel/sched/core.c:3549
     exit_to_usermode_loop+0x220/0x310 arch/x86/entry/common.c:152
     prepare_exit_to_usermode arch/x86/entry/common.c:196 [inline]
     syscall_return_slowpath arch/x86/entry/common.c:265 [inline]
     do_syscall_64+0x6ac/0x800 arch/x86/entry/common.c:290
     entry_SYSCALL_64_after_hwframe+0x49/0xbe
    RIP: 0033:0x455979
    RSP: 002b:00007fbf4051dc68 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
    RAX: 0000000000000000 RBX: 00007fbf4051e6d4 RCX: 0000000000455979
    RDX: 00000000200001c0 RSI: 000000000000890c RDI: 0000000000000013
    RBP: 000000000072bea0 R08: 0000000000000000 R09: 0000000000000000
    R10: 0000000000000000 R11: 0000000000000246 R12: 00000000ffffffff
    R13: 00000000000003c8 R14: 00000000006f9b60 R15: 0000000000000000
    Dumping ftrace buffer:
       (ftrace buffer empty)
    Kernel Offset: disabled
    Rebooting in 86400 seconds..
    
    Fixes: 23fb93a4 ("net/ipv6: Cleanup exception and cache route handling")
    Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
    Cc: David Ahern <dsahern@gmail.com>
    Reported-by: default avatarsyzbot <syzkaller@googlegroups.com>
    Acked-by: default avatarDavid Ahern <dsahern@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    9e575010
route.c 130 KB