bisecting cause commit starting from f49aa1de98363b6c5fba4637678d6b0ba3d18065 building syzkaller on 8285069f89c9942f65ce760a8f0a5a12254bfeeb testing commit f49aa1de98363b6c5fba4637678d6b0ba3d18065 with gcc (GCC) 8.1.0 run #0: crashed: WARNING: locking bug in rhashtable_walk_enter run #1: crashed: KASAN: use-after-free Read in rhashtable_walk_enter run #2: crashed: KASAN: slab-out-of-bounds Read in rhashtable_walk_enter run #3: crashed: KASAN: use-after-free Read in rhashtable_walk_enter run #4: crashed: KASAN: slab-out-of-bounds Read in rhashtable_walk_enter run #5: crashed: WARNING: locking bug in rhashtable_walk_enter run #6: crashed: WARNING: locking bug in rhashtable_walk_enter run #7: crashed: KASAN: slab-out-of-bounds Read in rhashtable_walk_enter run #8: crashed: INFO: trying to register non-static key in rhashtable_walk_enter run #9: boot failed: WARNING: workqueue cpumask: online intersect > possible intersect testing release v5.1 testing commit e93c9c99a629c61837d5a7fc2120cd2b6c70dbdd with gcc (GCC) 8.1.0 all runs: OK # git bisect start f49aa1de98363b6c5fba4637678d6b0ba3d18065 v5.1 Bisecting: 6392 revisions left to test after this (roughly 13 steps) [8c79f4cd441b27df6cadd11b70a50e06b3b3a2bf] Merge tag 'docs-5.2' of git://git.lwn.net/linux testing commit 8c79f4cd441b27df6cadd11b70a50e06b3b3a2bf with gcc (GCC) 8.1.0 all runs: OK # git bisect good 8c79f4cd441b27df6cadd11b70a50e06b3b3a2bf Bisecting: 3187 revisions left to test after this (roughly 12 steps) [1fb3b526df3bd7647e7854915ae6b22299408baf] Merge tag 'docs-5.2a' of git://git.lwn.net/linux testing commit 1fb3b526df3bd7647e7854915ae6b22299408baf with gcc (GCC) 8.1.0 all runs: OK # git bisect good 1fb3b526df3bd7647e7854915ae6b22299408baf Bisecting: 1583 revisions left to test after this (roughly 11 steps) [22c58fd70ca48a29505922b1563826593b08cc00] Merge tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc testing commit 22c58fd70ca48a29505922b1563826593b08cc00 with gcc (GCC) 8.1.0 all runs: OK # git bisect good 22c58fd70ca48a29505922b1563826593b08cc00 Bisecting: 791 revisions left to test after this (roughly 10 steps) [4e785e8d9947f0f75e39cf3034dd6f55170c514b] Merge tag 'configfs-for-5.2' of git://git.infradead.org/users/hch/configfs testing commit 4e785e8d9947f0f75e39cf3034dd6f55170c514b with gcc (GCC) 8.1.0 all runs: OK # git bisect good 4e785e8d9947f0f75e39cf3034dd6f55170c514b Bisecting: 381 revisions left to test after this (roughly 9 steps) [0ef0fd351550130129bbdb77362488befd7b69d2] Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm testing commit 0ef0fd351550130129bbdb77362488befd7b69d2 with gcc (GCC) 8.1.0 all runs: OK # git bisect good 0ef0fd351550130129bbdb77362488befd7b69d2 Bisecting: 156 revisions left to test after this (roughly 8 steps) [1ba3b5dc14923021f7815ea0b63baa34a3e1a998] Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip testing commit 1ba3b5dc14923021f7815ea0b63baa34a3e1a998 with gcc (GCC) 8.1.0 all runs: OK # git bisect good 1ba3b5dc14923021f7815ea0b63baa34a3e1a998 Bisecting: 78 revisions left to test after this (roughly 6 steps) [ee8a2b95b737d5989efeb477d5a1ef5e6955b830] Merge branch 'mlxsw-Two-port-module-fixes' testing commit ee8a2b95b737d5989efeb477d5a1ef5e6955b830 with gcc (GCC) 8.1.0 run #0: crashed: KASAN: slab-out-of-bounds Read in rhashtable_walk_enter run #1: crashed: INFO: trying to register non-static key in rhashtable_walk_enter run #2: crashed: KASAN: use-after-free Read in rhashtable_walk_enter run #3: crashed: WARNING: locking bug in rhashtable_walk_enter run #4: crashed: INFO: trying to register non-static key in rhashtable_walk_enter run #5: crashed: INFO: trying to register non-static key in rhashtable_walk_enter run #6: crashed: KASAN: use-after-free Read in rhashtable_walk_enter run #7: crashed: WARNING: locking bug in rhashtable_walk_enter run #8: crashed: WARNING: locking bug in rhashtable_walk_enter run #9: crashed: KASAN: use-after-free Read in rhashtable_walk_enter # git bisect bad ee8a2b95b737d5989efeb477d5a1ef5e6955b830 Bisecting: 38 revisions left to test after this (roughly 5 steps) [b4e467c82f8c12af78b6f6fa5730cb7dea7af1b4] net: usb: qmi_wwan: add Telit 0x1260 and 0x1261 compositions testing commit b4e467c82f8c12af78b6f6fa5730cb7dea7af1b4 with gcc (GCC) 8.1.0 all runs: OK # git bisect good b4e467c82f8c12af78b6f6fa5730cb7dea7af1b4 Bisecting: 19 revisions left to test after this (roughly 4 steps) [02f3afd97556017872a2d01d03d4ce66f8421a65] net/mlx5: E-Switch, Correct type to u16 for vport_num and int for vport_index testing commit 02f3afd97556017872a2d01d03d4ce66f8421a65 with gcc (GCC) 8.1.0 run #0: crashed: WARNING: locking bug in rhashtable_walk_enter run #1: crashed: KASAN: use-after-free Read in rhashtable_walk_enter run #2: crashed: KASAN: slab-out-of-bounds Read in rhashtable_walk_enter run #3: crashed: KASAN: slab-out-of-bounds Read in rhashtable_walk_enter run #4: crashed: KASAN: slab-out-of-bounds Read in rhashtable_walk_enter run #5: crashed: KASAN: slab-out-of-bounds Read in rhashtable_walk_enter run #6: crashed: KASAN: slab-out-of-bounds Read in rhashtable_walk_enter run #7: crashed: KASAN: use-after-free Read in rhashtable_walk_enter run #8: crashed: KASAN: slab-out-of-bounds Read in rhashtable_walk_enter run #9: crashed: KASAN: use-after-free Read in rhashtable_walk_enter # git bisect bad 02f3afd97556017872a2d01d03d4ce66f8421a65 Bisecting: 9 revisions left to test after this (roughly 3 steps) [d7c04b05c9ca14c55309eb139430283a45c4c25f] net: avoid weird emergency message testing commit d7c04b05c9ca14c55309eb139430283a45c4c25f with gcc (GCC) 8.1.0 run #0: crashed: KASAN: use-after-free Read in rhashtable_walk_enter run #1: crashed: KASAN: slab-out-of-bounds Read in rhashtable_walk_enter run #2: crashed: KASAN: slab-out-of-bounds Read in rhashtable_walk_enter run #3: crashed: KASAN: slab-out-of-bounds Read in rhashtable_walk_enter run #4: crashed: KASAN: use-after-free Read in rhashtable_walk_enter run #5: crashed: KASAN: slab-out-of-bounds Read in rhashtable_walk_enter run #6: crashed: KASAN: slab-out-of-bounds Read in rhashtable_walk_enter run #7: crashed: KASAN: use-after-free Read in rhashtable_walk_enter run #8: crashed: INFO: trying to register non-static key in rhashtable_walk_enter run #9: crashed: KASAN: slab-out-of-bounds Read in rhashtable_walk_enter # git bisect bad d7c04b05c9ca14c55309eb139430283a45c4c25f Bisecting: 4 revisions left to test after this (roughly 2 steps) [858e5400e682370d0f8d217fcd6fd6ae5b256f5f] xfrm: ressurrect "Fix uninitialized memory read in _decode_session4" testing commit 858e5400e682370d0f8d217fcd6fd6ae5b256f5f with gcc (GCC) 8.1.0 run #0: crashed: KASAN: use-after-free Read in rhashtable_walk_enter run #1: crashed: KASAN: use-after-free Read in rhashtable_walk_enter run #2: crashed: KASAN: use-after-free Read in rhashtable_walk_enter run #3: crashed: KASAN: use-after-free Read in rhashtable_walk_enter run #4: crashed: KASAN: use-after-free Read in rhashtable_walk_enter run #5: crashed: KASAN: use-after-free Read in rhashtable_walk_enter run #6: crashed: KASAN: use-after-free Read in rhashtable_walk_enter run #7: crashed: KASAN: slab-out-of-bounds Read in rhashtable_walk_enter run #8: crashed: KASAN: use-after-free Read in rhashtable_walk_enter run #9: crashed: WARNING: locking bug in rhashtable_walk_enter # git bisect bad 858e5400e682370d0f8d217fcd6fd6ae5b256f5f Bisecting: 1 revision left to test after this (roughly 1 step) [61fb0d01680771f72cc9d39783fb2c122aaad51e] ipv6: prevent possible fib6 leaks testing commit 61fb0d01680771f72cc9d39783fb2c122aaad51e with gcc (GCC) 8.1.0 all runs: OK # git bisect good 61fb0d01680771f72cc9d39783fb2c122aaad51e Bisecting: 0 revisions left to test after this (roughly 0 steps) [7e27e8d6130c5e88fac9ddec4249f7f2337fe7f8] tipc: switch order of device registration to fix a crash testing commit 7e27e8d6130c5e88fac9ddec4249f7f2337fe7f8 with gcc (GCC) 8.1.0 run #0: crashed: WARNING: locking bug in rhashtable_walk_enter run #1: crashed: WARNING: locking bug in rhashtable_walk_enter run #2: crashed: KASAN: use-after-free Read in rhashtable_walk_enter run #3: crashed: WARNING: locking bug in rhashtable_walk_enter run #4: crashed: KASAN: slab-out-of-bounds Read in rhashtable_walk_enter run #5: crashed: KASAN: use-after-free Read in rhashtable_walk_enter run #6: crashed: WARNING: locking bug in rhashtable_walk_enter run #7: crashed: WARNING: locking bug in rhashtable_walk_enter run #8: crashed: WARNING: locking bug in rhashtable_walk_enter run #9: crashed: KASAN: slab-out-of-bounds Read in rhashtable_walk_enter # git bisect bad 7e27e8d6130c5e88fac9ddec4249f7f2337fe7f8 7e27e8d6130c5e88fac9ddec4249f7f2337fe7f8 is the first bad commit commit 7e27e8d6130c5e88fac9ddec4249f7f2337fe7f8 Author: Junwei Hu Date: Thu May 16 10:51:15 2019 +0800 tipc: switch order of device registration to fix a crash When tipc is loaded while many processes try to create a TIPC socket, a crash occurs: PANIC: Unable to handle kernel paging request at virtual address "dfff20000000021d" pc : tipc_sk_create+0x374/0x1180 [tipc] lr : tipc_sk_create+0x374/0x1180 [tipc] Exception class = DABT (current EL), IL = 32 bits Call trace: tipc_sk_create+0x374/0x1180 [tipc] __sock_create+0x1cc/0x408 __sys_socket+0xec/0x1f0 __arm64_sys_socket+0x74/0xa8 ... This is due to race between sock_create and unfinished register_pernet_device. tipc_sk_insert tries to do "net_generic(net, tipc_net_id)". but tipc_net_id is not initialized yet. So switch the order of the two to close the race. This can be reproduced with multiple processes doing socket(AF_TIPC, ...) and one process doing module removal. Fixes: a62fbccecd62 ("tipc: make subscriber server support net namespace") Signed-off-by: Junwei Hu Reported-by: Wang Wang Reviewed-by: Xiaogang Wang Signed-off-by: David S. Miller :040000 040000 a8c27e7716c8b1c2b8a3c3758b7ed317c27a4397 576758d95f3ab1f0b4ce1c811eebe81b1322c5e1 M net revisions tested: 15, total time: 4h2m56.602327489s (build: 1h41m11.225835081s, test: 2h14m58.262213469s) first bad commit: 7e27e8d6130c5e88fac9ddec4249f7f2337fe7f8 tipc: switch order of device registration to fix a crash cc: ["davem@davemloft.net" "hujunwei4@huawei.com" "jon.maloy@ericsson.com" "linux-kernel@vger.kernel.org" "netdev@vger.kernel.org" "tipc-discussion@lists.sourceforge.net" "wangxiaogang3@huawei.com" "ying.xue@windriver.com"] crash: KASAN: slab-out-of-bounds Read in rhashtable_walk_enter ================================================================== BUG: KASAN: slab-out-of-bounds in __lock_acquire+0x3c15/0x55b0 kernel/locking/lockdep.c:3664 Read of size 8 at addr ffff8880a52b5f40 by task syz-executor.2/7751 CPU: 0 PID: 7751 Comm: syz-executor.2 Not tainted 5.1.0+ #1 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+0x113/0x167 lib/dump_stack.c:113 print_address_description.cold.5+0x9/0x1ff mm/kasan/report.c:188 __kasan_report.cold.6+0x1b/0x39 mm/kasan/report.c:317 kasan_report+0x12/0x20 mm/kasan/common.c:614 __asan_report_load8_noabort+0x14/0x20 mm/kasan/generic_report.c:132 __lock_acquire+0x3c15/0x55b0 kernel/locking/lockdep.c:3664 lock_acquire+0x173/0x3d0 kernel/locking/lockdep.c:4302 __raw_spin_lock include/linux/spinlock_api_smp.h:142 [inline] _raw_spin_lock+0x2d/0x40 kernel/locking/spinlock.c:151 spin_lock include/linux/spinlock.h:338 [inline] rhashtable_walk_enter+0xf4/0x300 lib/rhashtable.c:669 __tipc_dump_start+0x1bb/0x2c0 net/tipc/socket.c:3414 tipc_dump_start+0x6e/0x90 net/tipc/socket.c:3396 __netlink_dump_start+0x482/0x810 net/netlink/af_netlink.c:2351 netlink_dump_start include/linux/netlink.h:226 [inline] tipc_sock_diag_handler_dump+0x186/0x260 net/tipc/diag.c:91 __sock_diag_cmd net/core/sock_diag.c:232 [inline] sock_diag_rcv_msg+0x289/0x370 net/core/sock_diag.c:263 netlink_rcv_skb+0x13c/0x380 net/netlink/af_netlink.c:2486 sock_diag_rcv+0x25/0x40 net/core/sock_diag.c:274 netlink_unicast_kernel net/netlink/af_netlink.c:1311 [inline] netlink_unicast+0x43f/0x630 net/netlink/af_netlink.c:1337 netlink_sendmsg+0x765/0xc50 net/netlink/af_netlink.c:1926 sock_sendmsg_nosec net/socket.c:660 [inline] sock_sendmsg+0xb5/0xf0 net/socket.c:671 ___sys_sendmsg+0x647/0x950 net/socket.c:2292 __sys_sendmsg+0xd9/0x180 net/socket.c:2330 __do_sys_sendmsg net/socket.c:2339 [inline] __se_sys_sendmsg net/socket.c:2337 [inline] __x64_sys_sendmsg+0x73/0xb0 net/socket.c:2337 do_syscall_64+0xd0/0x530 arch/x86/entry/common.c:301 entry_SYSCALL_64_after_hwframe+0x49/0xbe RIP: 0033:0x459279 Code: fd b7 fb ff c3 66 2e 0f 1f 84 00 00 00 00 00 66 90 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 0f 83 cb b7 fb ff c3 66 2e 0f 1f 84 00 00 00 00 RSP: 002b:00007fab0ddb9c78 EFLAGS: 00000246 ORIG_RAX: 000000000000002e RAX: ffffffffffffffda RBX: 0000000000000003 RCX: 0000000000459279 RDX: 0000000000000000 RSI: 0000000020000080 RDI: 0000000000000003 RBP: 000000000075bf20 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 00007fab0ddba6d4 R13: 00000000004c6cdf R14: 00000000004dbb08 R15: 00000000ffffffff Allocated by task 19: save_stack+0x21/0x90 mm/kasan/common.c:71 set_track mm/kasan/common.c:79 [inline] __kasan_kmalloc.constprop.8+0xc7/0xd0 mm/kasan/common.c:489 kasan_slab_alloc+0x12/0x20 mm/kasan/common.c:497 slab_post_alloc_hook mm/slab.h:437 [inline] slab_alloc mm/slab.c:3356 [inline] kmem_cache_alloc+0x11a/0x720 mm/slab.c:3518 shmem_alloc_inode+0x15/0x30 mm/shmem.c:3628 alloc_inode+0x5c/0x1a0 fs/inode.c:226 new_inode_pseudo+0xc/0xd0 fs/inode.c:915 new_inode+0x14/0x30 fs/inode.c:944 shmem_get_inode+0x67/0x790 mm/shmem.c:2226 shmem_mknod+0x49/0x1a0 mm/shmem.c:2862 vfs_mknod+0x3ba/0x630 fs/namei.c:3717 handle_create+0x1a7/0x4d0 drivers/base/devtmpfs.c:212 handle drivers/base/devtmpfs.c:375 [inline] devtmpfsd+0x1ed/0x490 drivers/base/devtmpfs.c:401 kthread+0x324/0x3e0 kernel/kthread.c:253 ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:352 Freed by task 0: (stack is not available) The buggy address belongs to the object at ffff8880a52b5a50 which belongs to the cache shmem_inode_cache of size 1192 The buggy address is located 72 bytes to the right of 1192-byte region [ffff8880a52b5a50, ffff8880a52b5ef8) The buggy address belongs to the page: page:ffffea000294ad40 count:1 mapcount:0 mapping:ffff88821baa96c0 index:0xffff8880a52b5ffd flags: 0x1fffc0000000200(slab) raw: 01fffc0000000200 ffffea000294ac48 ffffea000294ae48 ffff88821baa96c0 raw: ffff8880a52b5ffd ffff8880a52b5000 0000000100000003 0000000000000000 page dumped because: kasan: bad access detected Memory state around the buggy address: ffff8880a52b5e00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ffff8880a52b5e80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 fc >ffff8880a52b5f00: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc ^ ffff8880a52b5f80: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc ffff8880a52b6000: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fc fc ==================================================================