====================================== | [ 3052.672732][T19936] br0: port 2(vx0) entered forwarding state | [ 3059.296404][T17389] br0: port 1(swp1) entered disabled state | [ 3068.785706][T20022] general protection fault, probably for non-canonical address 0xdffffc0000001fc0: 0000 [#1] PREEMPT SMP KASAN NOPTI | [ 3068.786037][T20022] KASAN: probably user-memory-access in range [0x000000000000fe00-0x000000000000fe07] [ 3068.786465][T20022] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014 [3068.786746][T20022] RIP: 0010:nh_valid_get_del_req (./include/net/netlink.h:1680 net/ipv4/nexthop.c:3235) [ 3068.786918][T20022] Code: ea 03 80 3c 02 00 0f 85 7a 02 00 00 48 8b 5e 70 48 85 db 74 6b 48 b8 00 00 00 00 00 fc ff df 48 8d 7b 04 48 89 fa 48 c1 ea 03 <0f> b6 14 02 48 89 f8 83 e0 07 83 c0 03 38 d0 7c 08 84 d2 0f 85 51 All code ======== 0: ea (bad) 1: 03 80 3c 02 00 0f add 0xf00023c(%rax),%eax 7: 85 7a 02 test %edi,0x2(%rdx) a: 00 00 add %al,(%rax) c: 48 8b 5e 70 mov 0x70(%rsi),%rbx 10: 48 85 db test %rbx,%rbx 13: 74 6b je 0x80 15: 48 b8 00 00 00 00 00 movabs $0xdffffc0000000000,%rax 1c: fc ff df 1f: 48 8d 7b 04 lea 0x4(%rbx),%rdi 23: 48 89 fa mov %rdi,%rdx 26: 48 c1 ea 03 shr $0x3,%rdx 2a:* 0f b6 14 02 movzbl (%rdx,%rax,1),%edx <-- trapping instruction 2e: 48 89 f8 mov %rdi,%rax 31: 83 e0 07 and $0x7,%eax 34: 83 c0 03 add $0x3,%eax 37: 38 d0 cmp %dl,%al 39: 7c 08 jl 0x43 3b: 84 d2 test %dl,%dl 3d: 0f .byte 0xf 3e: 85 .byte 0x85 3f: 51 push %rcx Code starting with the faulting instruction =========================================== 0: 0f b6 14 02 movzbl (%rdx,%rax,1),%edx 4: 48 89 f8 mov %rdi,%rax 7: 83 e0 07 and $0x7,%eax a: 83 c0 03 add $0x3,%eax d: 38 d0 cmp %dl,%al f: 7c 08 jl 0x19 11: 84 d2 test %dl,%dl 13: 0f .byte 0xf 14: 85 .byte 0x85 15: 51 push %rcx [ 3068.787370][T20022] RSP: 0018:ffffc9000114f4f8 EFLAGS: 00010206 [ 3068.787536][T20022] RAX: dffffc0000000000 RBX: 000000000000fdfd RCX: ffffc9000114f560 [ 3068.787725][T20022] RDX: 0000000000001fc0 RSI: ffffc9000114f5c0 RDI: 000000000000fe01 [ 3068.787912][T20022] RBP: ffff88801147bac0 R08: ffffc9000114f840 R09: 0000000000000004 [ 3068.788100][T20022] R10: dffffc0000000000 R11: 0000000000000001 R12: ffffc9000114f570 [ 3068.788284][T20022] R13: 0000000000000000 R14: ffffc9000114f840 R15: ffffc9000114f5c0 [ 3068.788468][T20022] FS: 00007ff09a388c40(0000) GS:ffff888036080000(0000) knlGS:0000000000000000 [ 3068.788691][T20022] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 3068.788846][T20022] CR2: 00007ff09a5e1423 CR3: 000000001194e003 CR4: 0000000000770ef0 [ 3068.789035][T20022] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 3068.789228][T20022] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [ 3068.789412][T20022] PKRU: 55555554 [ 3068.789510][T20022] Call Trace: [ 3068.789612][T20022] [3068.789677][T20022] ? die_addr (arch/x86/kernel/dumpstack.c:421 arch/x86/kernel/dumpstack.c:460) [3068.789776][T20022] ? exc_general_protection (arch/x86/kernel/traps.c:701 arch/x86/kernel/traps.c:643) [3068.789907][T20022] ? asm_exc_general_protection (./arch/x86/include/asm/idtentry.h:564) [3068.790037][T20022] ? nh_valid_get_del_req (./include/net/netlink.h:1680 net/ipv4/nexthop.c:3235) [3068.790162][T20022] ? __nla_parse (lib/nlattr.c:732) [3068.790290][T20022] rtm_del_nexthop (net/ipv4/nexthop.c:3264) [3068.790418][T20022] ? __pfx_rtm_del_nexthop (net/ipv4/nexthop.c:3245) [3068.790546][T20022] ? lock_acquire (./include/trace/events/lock.h:24 kernel/locking/lockdep.c:5725) [3068.790672][T20022] ? rtnetlink_rcv_msg (net/core/rtnetlink.c:6593) [3068.790798][T20022] ? __mutex_lock (./arch/x86/include/asm/preempt.h:94 kernel/locking/mutex.c:618 kernel/locking/mutex.c:752) [3068.790924][T20022] ? rtnetlink_rcv_msg (net/core/rtnetlink.c:6593) [3068.791047][T20022] ? __pfx___mutex_lock (kernel/locking/mutex.c:751) [3068.791171][T20022] ? __pfx___lock_release (kernel/locking/lockdep.c:5406) [3068.791297][T20022] rtnetlink_rcv_msg (net/core/rtnetlink.c:6595) [3068.791420][T20022] ? __pfx_rtnetlink_rcv_msg (net/core/rtnetlink.c:6489) [3068.791547][T20022] ? hlock_class (./arch/x86/include/asm/bitops.h:227 ./arch/x86/include/asm/bitops.h:239 ./include/asm-generic/bitops/instrumented-non-atomic.h:142 kernel/locking/lockdep.c:228) [3068.791671][T20022] ? mark_lock (kernel/locking/lockdep.c:4656 (discriminator 3)) [3068.791766][T20022] ? __lock_acquire (kernel/locking/lockdep.c:5137) [3068.791893][T20022] netlink_rcv_skb (net/netlink/af_netlink.c:2559) [3068.792019][T20022] ? __pfx_rtnetlink_rcv_msg (net/core/rtnetlink.c:6489) [3068.792153][T20022] ? __pfx_netlink_rcv_skb (net/netlink/af_netlink.c:2536) [3068.792350][T20022] ? lock_acquire.part.0 (kernel/locking/lockdep.c:467 kernel/locking/lockdep.c:5756) [3068.792476][T20022] ? __pfx___netlink_lookup (net/netlink/af_netlink.c:512) [3068.792605][T20022] ? lock_acquire (./include/trace/events/lock.h:24 kernel/locking/lockdep.c:5725) [3068.792738][T20022] ? netlink_deliver_tap (./include/linux/rcupdate.h:308 ./include/linux/rcupdate.h:783 ./include/net/netns/generic.h:48 net/netlink/af_netlink.c:333) [3068.792998][T20022] ? netlink_deliver_tap (./include/linux/rcupdate.h:308 ./include/linux/rcupdate.h:783 ./include/net/netns/generic.h:48 net/netlink/af_netlink.c:333) [3068.793121][T20022] ? netlink_deliver_tap (./include/linux/rcupdate.h:308 ./include/linux/rcupdate.h:783 net/netlink/af_netlink.c:340) [3068.793246][T20022] netlink_unicast (net/netlink/af_netlink.c:1335 net/netlink/af_netlink.c:1361) [3068.793378][T20022] ? __pfx_netlink_unicast (net/netlink/af_netlink.c:1346) [3068.793571][T20022] ? find_held_lock (kernel/locking/lockdep.c:5244) [3068.793700][T20022] netlink_sendmsg (net/netlink/af_netlink.c:1905) [3068.793827][T20022] ? __pfx_netlink_sendmsg (net/netlink/af_netlink.c:1824) [3068.793952][T20022] ? __might_fault (mm/memory.c:6080 mm/memory.c:6073) [3068.794076][T20022] ? __import_iovec (lib/iov_iter.c:1261 lib/iov_iter.c:1277) [3068.794204][T20022] ____sys_sendmsg (net/socket.c:730 net/socket.c:745 net/socket.c:2584) [3068.794331][T20022] ? __pfx_____sys_sendmsg (net/socket.c:2530) [3068.794454][T20022] ? __pfx_copy_msghdr_from_user (net/socket.c:2510) [3068.794674][T20022] ? __lock_release (kernel/locking/lockdep.c:5430) [3068.794794][T20022] ? do_fault_around (./include/linux/rcupdate.h:308 ./include/linux/rcupdate.h:783 mm/memory.c:4719) [3068.794924][T20022] ___sys_sendmsg (net/socket.c:2640) [3068.795045][T20022] ? __pte_offset_map (./include/linux/rcupdate.h:751 mm/pgtable-generic.c:285) [3068.795171][T20022] ? __pfx____sys_sendmsg (net/socket.c:2627) [3068.795305][T20022] ? hlock_class (./arch/x86/include/asm/bitops.h:227 ./arch/x86/include/asm/bitops.h:239 ./include/asm-generic/bitops/instrumented-non-atomic.h:142 kernel/locking/lockdep.c:228) [3068.795433][T20022] ? mark_lock (kernel/locking/lockdep.c:4656 (discriminator 3)) [3068.795523][T20022] ? __pfx_filemap_map_pages (mm/filemap.c:3521) [3068.795647][T20022] ? __lock_acquire (kernel/locking/lockdep.c:5137) [3068.795774][T20022] ? usage_skip (kernel/locking/lockdep.c:2295 kernel/locking/lockdep.c:2263) [3068.795896][T20022] ? do_user_addr_fault (./include/linux/rcupdate.h:298 ./include/linux/rcupdate.h:750 ./include/linux/mm.h:686 arch/x86/mm/fault.c:1357) [3068.796025][T20022] ? reacquire_held_locks (kernel/locking/lockdep.c:5279) [3068.796146][T20022] ? do_user_addr_fault (./include/linux/rcupdate.h:298 ./include/linux/rcupdate.h:750 ./include/linux/mm.h:686 arch/x86/mm/fault.c:1357) [3068.796346][T20022] ? __fget_light (./include/linux/atomic/atomic-arch-fallback.h:479 ./include/linux/atomic/atomic-instrumented.h:50 fs/file.c:1145) [3068.796474][T20022] __sys_sendmsg (./include/linux/file.h:32 net/socket.c:2669) [3068.796611][T20022] ? __pfx___sys_sendmsg (net/socket.c:2655) [3068.796737][T20022] ? __up_read (./arch/x86/include/asm/atomic64_64.h:79 ./include/linux/atomic/atomic-arch-fallback.h:2735 ./include/linux/atomic/atomic-long.h:184 ./include/linux/atomic/atomic-instrumented.h:3289 kernel/locking/rwsem.c:1347) [3068.796926][T20022] ? do_user_addr_fault (./include/linux/rcupdate.h:784 ./include/linux/mm.h:688 arch/x86/mm/fault.c:1357) [3068.797056][T20022] do_syscall_64 (arch/x86/entry/common.c:52 arch/x86/entry/common.c:83) [3068.797181][T20022] entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:129) [ 3068.797334][T20022] RIP: 0033:0x7ff09a5917b7 [ 3068.797530][T20022] Code: 0a 00 f7 d8 64 89 02 48 c7 c0 ff ff ff ff eb b9 0f 1f 00 f3 0f 1e fa 64 8b 04 25 18 00 00 00 85 c0 75 10 b8 2e 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 51 c3 48 83 ec 28 89 54 24 1c 48 89 74 24 10 All code ======== 0: 0a 00 or (%rax),%al 2: f7 d8 neg %eax 4: 64 89 02 mov %eax,%fs:(%rdx) 7: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax e: eb b9 jmp 0xffffffffffffffc9 10: 0f 1f 00 nopl (%rax) 13: f3 0f 1e fa endbr64 17: 64 8b 04 25 18 00 00 mov %fs:0x18,%eax 1e: 00 1f: 85 c0 test %eax,%eax 21: 75 10 jne 0x33 23: b8 2e 00 00 00 mov $0x2e,%eax 28: 0f 05 syscall 2a:* 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax <-- trapping instruction 30: 77 51 ja 0x83 32: c3 ret 33: 48 83 ec 28 sub $0x28,%rsp 37: 89 54 24 1c mov %edx,0x1c(%rsp) 3b: 48 89 74 24 10 mov %rsi,0x10(%rsp) Code starting with the faulting instruction =========================================== 0: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax 6: 77 51 ja 0x59 8: c3 ret 9: 48 83 ec 28 sub $0x28,%rsp d: 89 54 24 1c mov %edx,0x1c(%rsp) 11: 48 89 74 24 10 mov %rsi,0x10(%rsp) [ 3068.797978][T20022] RSP: 002b:00007ffee857e2c8 EFLAGS: 00000246 ORIG_RAX: 000000000000002e [ 3068.798232][T20022] RAX: ffffffffffffffda RBX: 00007ffee857ee20 RCX: 00007ff09a5917b7 [ 3068.798420][T20022] RDX: 0000000000000000 RSI: 00007ffee857e330 RDI: 0000000000000005 [ 3068.798673][T20022] RBP: 00007ffee857e7f0 R08: 0000000000000004 R09: 0000000000000000 [ 3068.798867][T20022] R10: 00007ff09a44a708 R11: 0000000000000246 R12: 00007ffee8580a1a Finger prints: nh_valid_get_del_req:rtm_del_nexthop:rtnetlink_rcv_msg:netlink_rcv_skb