====================================== | [ 2.080359] ------------[ cut here ]------------ | [ 2.080446] refcount_t: underflow; use-after-free. | [ 2.080506] WARNING: CPU: 3 PID: 235 at lib/refcount.c:28 refcount_warn_saturate (lib/refcount.c:28 (discriminator 3)) | [ 2.080582] Modules linked in: netdevsim [ 2.080676] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 [ 2.080717] RIP: 0010:refcount_warn_saturate (lib/refcount.c:28 (discriminator 3)) [ 2.080757] Code: a9 e8 88 98 ba ff 90 0f 0b 90 90 c3 80 3d 69 b4 eb 00 00 75 89 c6 05 60 b4 eb 00 01 90 48 c7 c7 98 6e 14 a9 e8 65 98 ba ff 90 <0f> 0b 90 90 c3 80 3d 44 b4 eb 00 00 0f 85 62 ff ff ff c6 05 37 b4 All code ======== 0: a9 e8 88 98 ba test $0xba9888e8,%eax 5: ff 90 0f 0b 90 90 call *-0x6f6ff4f1(%rax) b: c3 ret c: 80 3d 69 b4 eb 00 00 cmpb $0x0,0xebb469(%rip) # 0xebb47c 13: 75 89 jne 0xffffffffffffff9e 15: c6 05 60 b4 eb 00 01 movb $0x1,0xebb460(%rip) # 0xebb47c 1c: 90 nop 1d: 48 c7 c7 98 6e 14 a9 mov $0xffffffffa9146e98,%rdi 24: e8 65 98 ba ff call 0xffffffffffba988e 29: 90 nop 2a:* 0f 0b ud2 <-- trapping instruction 2c: 90 nop 2d: 90 nop 2e: c3 ret 2f: 80 3d 44 b4 eb 00 00 cmpb $0x0,0xebb444(%rip) # 0xebb47a 36: 0f 85 62 ff ff ff jne 0xffffffffffffff9e 3c: c6 .byte 0xc6 3d: 05 .byte 0x5 3e: 37 (bad) 3f: b4 .byte 0xb4 Code starting with the faulting instruction =========================================== 0: 0f 0b ud2 2: 90 nop 3: 90 nop 4: c3 ret 5: 80 3d 44 b4 eb 00 00 cmpb $0x0,0xebb444(%rip) # 0xebb450 c: 0f 85 62 ff ff ff jne 0xffffffffffffff74 12: c6 .byte 0xc6 13: 05 .byte 0x5 14: 37 (bad) 15: b4 .byte 0xb4 [ 2.080874] RSP: 0018:ffffb6f5002b3730 EFLAGS: 00010282 [ 2.080917] RAX: 0000000000000000 RBX: ffffb6f5002b3740 RCX: 00000000ffffdfff [ 2.080971] RDX: 0000000000000000 RSI: 00000000ffffffea RDI: 0000000000000001 [ 2.081048] RBP: ffffb6f5002b3258 R08: ffffffffa9556a28 R09: 00000000ffffdfff [ 2.081108] R10: ffffffffa9476a40 R11: ffffffffa9526a40 R12: dead000000000122 [ 2.081174] R13: 00000000fffb73b8 R14: 0000000000000001 R15: ffff921542dbe000 [ 2.081235] FS: 00007f4cf1eff800(0000) GS:ffff9215d5137000(0000) knlGS:0000000000000000 [ 2.081295] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 2.081359] CR2: 00007f42619415f0 CR3: 0000000004de2002 CR4: 0000000000772ef0 [ 2.081414] PKRU: 55555554 [ 2.081434] Call Trace: [ 2.081459] [ 2.081481] netdev_run_todo (./include/linux/list.h:381 net/core/dev.c:11670) [ 2.081521] rtnl_dellink (net/core/rtnetlink.c:3580) [ 2.081560] ? virtio_fs_enqueue_req (fs/fuse/virtio_fs.c:1473) [ 2.081608] ? netdev_run_todo (./include/linux/list.h:381 net/core/dev.c:11653) [ 2.081639] ? rtnl_bridge_getlink (net/core/rtnetlink.c:3536) [ 2.081677] rtnetlink_rcv_msg (net/core/rtnetlink.c:6959) [ 2.081711] ? get_page_from_freelist (mm/page_alloc.c:1226 mm/page_alloc.c:1848 mm/page_alloc.c:1858 mm/page_alloc.c:3884) [ 2.081757] ? rtnl_calcit.isra.0 (net/core/rtnetlink.c:6861) [ 2.081796] netlink_rcv_skb (net/netlink/af_netlink.c:2550) [ 2.081838] netlink_unicast (net/netlink/af_netlink.c:1319 net/netlink/af_netlink.c:1344) [ 2.081869] ? __alloc_skb (net/core/skbuff.c:690) [ 2.081905] netlink_sendmsg (net/netlink/af_netlink.c:1894) [ 2.081936] ____sys_sendmsg (net/socket.c:727 net/socket.c:742 net/socket.c:2630) [ 2.081977] ? copy_msghdr_from_user (net/socket.c:2570) [ 2.082014] ___sys_sendmsg (net/socket.c:2686) [ 2.082045] ? do_wp_page (./include/linux/mmu_notifier.h:468 mm/memory.c:3786 mm/memory.c:4140) [ 2.082075] ? ___pte_offset_map (./include/linux/pgtable.h:347 ./include/linux/pgtable.h:635 mm/pgtable-generic.c:288) [ 2.082107] ? __handle_mm_fault (mm/memory.c:6193 mm/memory.c:6318) [ 2.082151] ? fsnotify_grab_connector (fs/notify/mark.c:709) [ 2.082201] ? fsnotify_destroy_marks (fs/notify/mark.c:937) [ 2.082240] __sys_sendmsg (net/socket.c:2716) [ 2.082271] do_syscall_64 (arch/x86/entry/syscall_64.c:63 arch/x86/entry/syscall_64.c:94) [ 2.082315] entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:130) [ 2.082357] RIP: 0033:0x7f4cf20cd1d7 [ 2.082401] Code: 0e 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: 0e (bad) 1: 00 f7 add %dh,%bh 3: d8 64 89 02 fsubs 0x2(%rcx,%rcx,4) 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) [ 2.082543] RSP: 002b:00007fffbcb86338 EFLAGS: 00000246 ORIG_RAX: 000000000000002e [ 2.082615] RAX: ffffffffffffffda RBX: 00007fffbcb86a60 RCX: 00007f4cf20cd1d7 [ 2.082662] RDX: 0000000000000000 RSI: 00007fffbcb863a0 RDI: 0000000000000005 [ 2.082721] RBP: 0000000000000001 R08: 0000000000000003 R09: 0000000000000078 [ 2.082785] R10: 00007f4cf1fc9f60 R11: 0000000000000246 R12: 0000000000000001 [ 2.082834] R13: 00000000690de85a R14: 0000000000499600 R15: 0000000000000000 | [ 2.415359] ------------[ cut here ]------------ | [ 2.415512] kernel BUG at net/core/net-sysfs.c:2246! | [ 2.415584] Oops: invalid opcode: 0000 [#1] SMP | [ 2.415767] Tainted: [W]=WARN [ 2.415807] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 [ 2.415877] RIP: 0010:netdev_release (net/core/net-sysfs.c:2246 net/core/net-sysfs.c:2242) [ 2.415940] Code: fa 0f 1f 44 00 00 80 7f e0 04 75 1d 55 48 8d af d0 fa ff ff 48 8b bf 00 fc ff ff e8 cd ff a3 ff 48 89 ef 5d e9 84 06 a4 ff 90 <0f> 0b 90 f3 0f 1e fa 0f 1f 44 00 00 55 48 89 f5 48 8d 97 e8 fb ff All code ======== 0: fa cli 1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 6: 80 7f e0 04 cmpb $0x4,-0x20(%rdi) a: 75 1d jne 0x29 c: 55 push %rbp d: 48 8d af d0 fa ff ff lea -0x530(%rdi),%rbp 14: 48 8b bf 00 fc ff ff mov -0x400(%rdi),%rdi 1b: e8 cd ff a3 ff call 0xffffffffffa3ffed 20: 48 89 ef mov %rbp,%rdi 23: 5d pop %rbp 24: e9 84 06 a4 ff jmp 0xffffffffffa406ad 29: 90 nop 2a:* 0f 0b ud2 <-- trapping instruction 2c: 90 nop 2d: f3 0f 1e fa endbr64 31: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 36: 55 push %rbp 37: 48 89 f5 mov %rsi,%rbp 3a: 48 rex.W 3b: 8d .byte 0x8d 3c: 97 xchg %eax,%edi 3d: e8 .byte 0xe8 3e: fb sti 3f: ff .byte 0xff Code starting with the faulting instruction =========================================== 0: 0f 0b ud2 2: 90 nop 3: f3 0f 1e fa endbr64 7: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) c: 55 push %rbp d: 48 89 f5 mov %rsi,%rbp 10: 48 rex.W 11: 8d .byte 0x8d 12: 97 xchg %eax,%edi 13: e8 .byte 0xe8 14: fb sti 15: ff .byte 0xff [ 2.416111] RSP: 0018:ffffb6f50056fbf0 EFLAGS: 00010297 [ 2.416161] RAX: ffffffffa8b5a5d0 RBX: 00000000ffffffff RCX: 0000000000000002 [ 2.416243] RDX: 0000000000000006 RSI: ffffffffa8953ba4 RDI: ffff9215413c4530 [ 2.416323] RBP: ffff9215413c4530 R08: 0000000000000010 R09: 0000000000000190 [ 2.416401] R10: 0000000000000400 R11: 0000000000000190 R12: ffff921541ae4800 [ 2.416477] R13: ffffffffa8eb1d20 R14: ffff921542e58580 R15: ffff9215413c4000 [ 2.416558] FS: 00007fe712ce4000(0000) GS:ffff9215d4fb7000(0000) knlGS:0000000000000000 [ 2.416643] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 2.416716] CR2: 00007f42619415f0 CR3: 0000000004dc9003 CR4: 0000000000772ef0 [ 2.416803] PKRU: 55555554 [ 2.416832] Call Trace: [ 2.416860] [ 2.416883] device_release (drivers/base/core.c:2569) [ 2.416930] kobject_put (lib/kobject.c:693 lib/kobject.c:720 ./include/linux/kref.h:65 lib/kobject.c:737) [ 2.416984] netdev_run_todo (./include/linux/list.h:381 net/core/dev.c:11670) [ 2.417036] nsim_destroy (drivers/net/netdevsim/netdevsim.h:396 drivers/net/netdevsim/netdev.c:1186) netdevsim [ 2.417094] __nsim_dev_port_del (drivers/net/netdevsim/dev.c:441 drivers/net/netdevsim/dev.c:1474) netdevsim [ 2.417149] nsim_dev_reload_destroy (drivers/net/netdevsim/dev.c:1483 drivers/net/netdevsim/dev.c:1707) netdevsim [ 2.417208] nsim_drv_remove (drivers/net/netdevsim/dev.c:1724) netdevsim [ 2.417273] device_release_driver_internal (drivers/base/dd.c:1276 drivers/base/dd.c:1297) [ 2.417328] bus_remove_device (./include/linux/kobject.h:193 (discriminator 3) drivers/base/base.h:73 (discriminator 3) drivers/base/bus.c:586 (discriminator 3)) [ 2.417375] device_del (drivers/base/core.c:3879) [ 2.417414] device_unregister (drivers/base/core.c:3796 drivers/base/core.c:3920) [ 2.417452] del_device_store (drivers/net/netdevsim/bus.c:248) netdevsim [ 2.417510] kernfs_fop_write_iter (fs/kernfs/file.c:88 fs/kernfs/file.c:356) [ 2.417569] vfs_write (fs/read_write.c:594 fs/read_write.c:686) [ 2.417617] ksys_write (fs/read_write.c:738) [ 2.417658] do_syscall_64 (arch/x86/entry/syscall_64.c:63 arch/x86/entry/syscall_64.c:94) [ 2.417697] entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:130) [ 2.417748] RIP: 0033:0x7fe712de4257 [ 2.417788] Code: 0f 00 f7 d8 64 89 02 48 c7 c0 ff ff ff ff eb b7 0f 1f 00 f3 0f 1e fa 64 8b 04 25 18 00 00 00 85 c0 75 10 b8 01 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 51 c3 48 83 ec 28 48 89 54 24 18 48 89 74 24 All code ======== 0: 0f 00 (bad) 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 b7 jmp 0xffffffffffffffc7 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 01 00 00 00 mov $0x1,%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: 48 89 54 24 18 mov %rdx,0x18(%rsp) 3c: 48 rex.W 3d: 89 .byte 0x89 3e: 74 24 je 0x64 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: 48 89 54 24 18 mov %rdx,0x18(%rsp) 12: 48 rex.W 13: 89 .byte 0x89 14: 74 24 je 0x3a [ 2.417976] RSP: 002b:00007ffc9dbaccc8 EFLAGS: 00000246 ORIG_RAX: 0000000000000001 [ 2.418050] RAX: ffffffffffffffda RBX: 00007fe712ee0780 RCX: 00007fe712de4257 [ 2.418128] RDX: 0000000000000004 RSI: 00005610a64a0a90 RDI: 0000000000000001 [ 2.418204] RBP: 0000000000000004 R08: 0000000000000000 R09: 00007fe712e96d20 [ 2.418285] R10: 00007fe712e96c20 R11: 0000000000000246 R12: 0000000000000004 Finger prints: netdev_release:device_release:kobject_put:netdev_run_todo:nsim_destroy refcount_warn_saturate:netdev_run_todo:rtnl_dellink:rtnetlink_rcv_msg:netlink_rcv_skb