bisecting fixing commit since 9dfbac0e6b8600043de8dc85ed072f5f1342dc15 building syzkaller on f752fb536b579822da36383d50f78ff6f912a637 testing commit 9dfbac0e6b8600043de8dc85ed072f5f1342dc15 compiler: gcc version 8.4.1 20210217 (GCC) kernel signature: 63a308f5bef0f62967d507980310a47612c754fcceee0a91a8f7913def4175e1 run #0: crashed: unregister_netdevice: waiting for DEV to become free run #1: crashed: unregister_netdevice: waiting for DEV to become free run #2: crashed: KASAN: use-after-free Read in nbd_put run #3: crashed: unregister_netdevice: waiting for DEV to become free run #4: crashed: unregister_netdevice: waiting for DEV to become free run #5: crashed: unregister_netdevice: waiting for DEV to become free run #6: crashed: WARNING: refcount bug in nbd_put run #7: crashed: unregister_netdevice: waiting for DEV to become free run #8: crashed: unregister_netdevice: waiting for DEV to become free run #9: crashed: unregister_netdevice: waiting for DEV to become free run #10: crashed: WARNING: refcount bug in nbd_put run #11: crashed: unregister_netdevice: waiting for DEV to become free run #12: crashed: KASAN: use-after-free Read in nbd_put run #13: crashed: unregister_netdevice: waiting for DEV to become free run #14: crashed: unregister_netdevice: waiting for DEV to become free run #15: crashed: unregister_netdevice: waiting for DEV to become free run #16: crashed: unregister_netdevice: waiting for DEV to become free run #17: crashed: unregister_netdevice: waiting for DEV to become free run #18: crashed: unregister_netdevice: waiting for DEV to become free run #19: crashed: unregister_netdevice: waiting for DEV to become free testing current HEAD a35d65bedfbc38cffe2701798cd6810bbdf07892 testing commit a35d65bedfbc38cffe2701798cd6810bbdf07892 compiler: gcc version 8.4.1 20210217 (GCC) kernel signature: b67f152d478b2135d22231155c51df673d240c179ea8a0ff349e3eaaa2e233c8 run #0: crashed: WARNING: refcount bug in nbd_put run #1: crashed: KASAN: use-after-free Read in nbd_put run #2: crashed: unregister_netdevice: waiting for DEV to become free run #3: crashed: KASAN: use-after-free Read in nbd_put run #4: crashed: unregister_netdevice: waiting for DEV to become free run #5: crashed: unregister_netdevice: waiting for DEV to become free run #6: crashed: unregister_netdevice: waiting for DEV to become free run #7: crashed: unregister_netdevice: waiting for DEV to become free run #8: crashed: KASAN: use-after-free Read in nbd_put run #9: crashed: unregister_netdevice: waiting for DEV to become free revisions tested: 2, total time: 28m52.682392016s (build: 21m54.169734935s, test: 6m28.481266251s) the crash still happens on HEAD commit msg: Linux 4.14.267 crash: unregister_netdevice: waiting for DEV to become free IPv6: ADDRCONF(NETDEV_CHANGE): veth1_to_batadv: link becomes ready IPv6: ADDRCONF(NETDEV_CHANGE): bond0: link becomes ready can: request_module (can-proto-0) failed. can: request_module (can-proto-0) failed. can: request_module (can-proto-0) failed. unregister_netdevice: waiting for ip6gre0 to become free. Usage count = -1 netlink: 4 bytes leftover after parsing attributes in process `syz-executor938'. netlink: 4 bytes leftover after parsing attributes in process `syz-executor938'. netlink: 4 bytes leftover after parsing attributes in process `syz-executor938'. netlink: 4 bytes leftover after parsing attributes in process `syz-executor938'. netlink: 4 bytes leftover after parsing attributes in process `syz-executor938'. netlink: 4 bytes leftover after parsing attributes in process `syz-executor938'. netlink: 4 bytes leftover after parsing attributes in process `syz-executor938'. netlink: 4 bytes leftover after parsing attributes in process `syz-executor938'. netlink: 4 bytes leftover after parsing attributes in process `syz-executor938'. netlink: 4 bytes leftover after parsing attributes in process `syz-executor938'. ================================================================== BUG: KASAN: use-after-free in __read_once_size include/linux/compiler.h:185 [inline] BUG: KASAN: use-after-free in atomic_read arch/x86/include/asm/atomic.h:27 [inline] BUG: KASAN: use-after-free in refcount_dec_not_one+0x67/0x70 lib/refcount.c:270 Read of size 4 at addr ffff8880aa764d98 by task syz-executor938/8428 CPU: 1 PID: 8428 Comm: syz-executor938 Not tainted 4.14.267-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Call Trace: __dump_stack lib/dump_stack.c:17 [inline] dump_stack+0x14b/0x1e7 lib/dump_stack.c:58 print_address_description.cold.6+0x9/0x1ca mm/kasan/report.c:252 kasan_report_error mm/kasan/report.c:351 [inline] kasan_report mm/kasan/report.c:409 [inline] kasan_report.cold.7+0x11a/0x2d3 mm/kasan/report.c:393 __asan_report_load4_noabort+0x14/0x20 mm/kasan/report.c:429 __read_once_size include/linux/compiler.h:185 [inline] atomic_read arch/x86/include/asm/atomic.h:27 [inline] refcount_dec_not_one+0x67/0x70 lib/refcount.c:270 refcount_dec_and_mutex_lock+0x17/0x50 lib/refcount.c:309 nbd_put+0x1f/0x150 drivers/block/nbd.c:228 nbd_genl_connect+0xcde/0x1540 drivers/block/nbd.c:1896 genl_family_rcv_msg+0x57f/0xfe0 net/netlink/genetlink.c:600 genl_rcv_msg+0xa7/0x140 net/netlink/genetlink.c:625 netlink_rcv_skb+0x12f/0x3b0 net/netlink/af_netlink.c:2446 genl_rcv+0x23/0x40 net/netlink/genetlink.c:636 netlink_unicast_kernel net/netlink/af_netlink.c:1294 [inline] netlink_unicast+0x40b/0x610 net/netlink/af_netlink.c:1320 netlink_sendmsg+0x651/0xc10 net/netlink/af_netlink.c:1891 sock_sendmsg_nosec net/socket.c:646 [inline] sock_sendmsg+0xac/0xf0 net/socket.c:656 ___sys_sendmsg+0x625/0x920 net/socket.c:2062 __sys_sendmsg+0xc1/0x140 net/socket.c:2096 SYSC_sendmsg net/socket.c:2107 [inline] SyS_sendmsg+0xd/0x20 net/socket.c:2103 do_syscall_64+0x1c7/0x5b0 arch/x86/entry/common.c:292 entry_SYSCALL_64_after_hwframe+0x46/0xbb RIP: 0033:0x7f6ad1285949 RSP: 002b:00007ffffeecb908 EFLAGS: 00000246 ORIG_RAX: 000000000000002e RAX: ffffffffffffffda RBX: 00000000000f4240 RCX: 00007f6ad1285949 RDX: 0000000000000000 RSI: 0000000020000280 RDI: 0000000000000003 RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000001 R10: 0000000000000000 R11: 0000000000000246 R12: 000000000000bbe8 R13: 00007ffffeecb91c R14: 00007ffffeecb930 R15: 00007ffffeecb920 Allocated by task 8427: save_stack_trace+0x16/0x20 arch/x86/kernel/stacktrace.c:59 save_stack mm/kasan/kasan.c:447 [inline] set_track mm/kasan/kasan.c:459 [inline] kasan_kmalloc.part.1+0x62/0xf0 mm/kasan/kasan.c:551 kasan_kmalloc+0xaf/0xc0 mm/kasan/kasan.c:536 kmem_cache_alloc_trace+0x152/0x3f0 mm/slab.c:3618 kmalloc include/linux/slab.h:488 [inline] kzalloc include/linux/slab.h:661 [inline] nbd_dev_add+0x8a/0x7c0 drivers/block/nbd.c:1611 nbd_genl_connect+0x394/0x1540 drivers/block/nbd.c:1756 genl_family_rcv_msg+0x57f/0xfe0 net/netlink/genetlink.c:600 genl_rcv_msg+0xa7/0x140 net/netlink/genetlink.c:625 netlink_rcv_skb+0x12f/0x3b0 net/netlink/af_netlink.c:2446 genl_rcv+0x23/0x40 net/netlink/genetlink.c:636 netlink_unicast_kernel net/netlink/af_netlink.c:1294 [inline] netlink_unicast+0x40b/0x610 net/netlink/af_netlink.c:1320 netlink_sendmsg+0x651/0xc10 net/netlink/af_netlink.c:1891 sock_sendmsg_nosec net/socket.c:646 [inline] sock_sendmsg+0xac/0xf0 net/socket.c:656 ___sys_sendmsg+0x625/0x920 net/socket.c:2062 __sys_sendmsg+0xc1/0x140 net/socket.c:2096 SYSC_sendmsg net/socket.c:2107 [inline] SyS_sendmsg+0xd/0x20 net/socket.c:2103 do_syscall_64+0x1c7/0x5b0 arch/x86/entry/common.c:292 entry_SYSCALL_64_after_hwframe+0x46/0xbb Freed by task 8428: save_stack_trace+0x16/0x20 arch/x86/kernel/stacktrace.c:59 save_stack mm/kasan/kasan.c:447 [inline] set_track mm/kasan/kasan.c:459 [inline] kasan_slab_free+0xab/0x190 mm/kasan/kasan.c:524 __cache_free mm/slab.c:3496 [inline] kfree+0xcc/0x270 mm/slab.c:3815 nbd_dev_remove drivers/block/nbd.c:223 [inline] nbd_put drivers/block/nbd.c:231 [inline] nbd_put+0x113/0x150 drivers/block/nbd.c:226 nbd_config_put+0x4bf/0x780 drivers/block/nbd.c:1172 nbd_genl_connect+0xcbe/0x1540 drivers/block/nbd.c:1894 genl_family_rcv_msg+0x57f/0xfe0 net/netlink/genetlink.c:600 genl_rcv_msg+0xa7/0x140 net/netlink/genetlink.c:625 netlink_rcv_skb+0x12f/0x3b0 net/netlink/af_netlink.c:2446 genl_rcv+0x23/0x40 net/netlink/genetlink.c:636 netlink_unicast_kernel net/netlink/af_netlink.c:1294 [inline] netlink_unicast+0x40b/0x610 net/netlink/af_netlink.c:1320 netlink_sendmsg+0x651/0xc10 net/netlink/af_netlink.c:1891 sock_sendmsg_nosec net/socket.c:646 [inline] sock_sendmsg+0xac/0xf0 net/socket.c:656 ___sys_sendmsg+0x625/0x920 net/socket.c:2062 __sys_sendmsg+0xc1/0x140 net/socket.c:2096 SYSC_sendmsg net/socket.c:2107 [inline] SyS_sendmsg+0xd/0x20 net/socket.c:2103 do_syscall_64+0x1c7/0x5b0 arch/x86/entry/common.c:292 entry_SYSCALL_64_after_hwframe+0x46/0xbb The buggy address belongs to the object at ffff8880aa764cc0 which belongs to the cache kmalloc-512 of size 512 The buggy address is located 216 bytes inside of 512-byte region [ffff8880aa764cc0, ffff8880aa764ec0) The buggy address belongs to the page: page:ffffea0002a9d900 count:1 mapcount:0 mapping:ffff8880aa764040 index:0x0 flags: 0xfff00000000100(slab) raw: 00fff00000000100 ffff8880aa764040 0000000000000000 0000000100000006 raw: ffffea0002b0b820 ffffea0002a30620 ffff88813fe50940 0000000000000000 page dumped because: kasan: bad access detected Memory state around the buggy address: ffff8880aa764c80: fc fc fc fc fc fc fc fc fb fb fb fb fb fb fb fb ffff8880aa764d00: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb >ffff8880aa764d80: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ^ ffff8880aa764e00: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ffff8880aa764e80: fb fb fb fb fb fb fb fb fc fc fc fc fc fc fc fc ==================================================================