__sctp_v6_cmp_addr - slab out of bounds Read
Found in LK v4.17.0-rc1.
slab-out-of-bounds in __sctp_v6_cmp_addr, 8 bytes read.
Demo Log
zero@zer0day:/tmp$ gcc -o poc poc.c
zero@zer0day:/tmp$ ./poc
[ 53.074578] ==================================================================
[ 53.077133] BUG: KASAN: slab-out-of-bounds in __sctp_v6_cmp_addr+0x3e4/0x440
[ 53.079233] Read of size 8 at addr ffff880066c03530 by task poc/2777
[ 53.081111]
[ 53.081589] CPU: 1 PID: 2777 Comm: poc Not tainted 4.17.0-rc1+ #34
[ 53.083186] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014
[ 53.085896] Call Trace:
[ 53.086652] dump_stack+0x11b/0x1fd
[ 53.087714] ? dump_stack_print_info.cold.0+0x81/0x81
[ 53.089250] ? kmsg_dump_rewind_nolock+0xd9/0xd9
[ 53.090597] ? sctp_bind_addr_conflict+0xf5/0x450
[ 53.091913] print_address_description+0x60/0x255
[ 53.093161] kasan_report+0x196/0x2a0
[ 53.094020] ? __sctp_v6_cmp_addr+0x3e4/0x440
[ 53.095031] ? __sctp_v6_cmp_addr+0x3e4/0x440
[ 53.096037] ? sctp_inet6_cmp_addr+0x12c/0x170
[ 53.097070] ? sctp_bind_addr_conflict+0x25c/0x450
[ 53.098160] ? sctp_bind_addr_match+0x3b0/0x3b0
[ 53.099339] ? sctp_get_port_local+0x884/0x1320
[ 53.100532] ? sctp_set_owner_w+0x4f0/0x4f0
[ 53.101680] ? rcu_is_watching+0x81/0x130
[ 53.102749] ? inet_addr_type+0x250/0x360
[ 53.103853] ? sctp_bind_addr_match+0x280/0x3b0
[ 53.105093] ? sctp_bind_addrs_to_raw+0x310/0x310
[ 53.106378] ? sctp_v4_available+0xee/0x1c0
[ 53.107552] ? sctp_do_bind+0x259/0x680
[ 53.108612] ? sctp_bindx_add+0x93/0x1b0
[ 53.109767] ? sctp_setsockopt_bindx+0x16c/0x2e0
[ 53.111023] ? sctp_setsockopt+0x251b/0x61d0
[ 53.112119] ? __lock_acquire+0x9f2/0x4840
[ 53.112977] ? sctp_setsockopt_paddr_thresholds+0x4e0/0x4e0
[ 53.114445] ? unwind_next_frame+0x11c2/0x1d10
[ 53.115618] ? __save_stack_trace+0x59/0xf0
[ 53.116740] ? debug_check_no_locks_freed+0x210/0x210
[ 53.118064] ? do_syscall_64+0x148/0x5d0
[ 53.119163] ? unwind_next_frame+0x286/0x1d10
[ 53.120400] ? __x64_sys_socket+0x6f/0xb0
[ 53.121504] ? deref_stack_reg+0x110/0x110
[ 53.122664] ? find_held_lock+0x32/0x1b0
[ 53.123787] ? __save_stack_trace+0x7d/0xf0
[ 53.124999] ? do_syscall_64+0x148/0x5d0
[ 53.126094] ? save_stack+0x89/0xb0
[ 53.127069] ? kasan_kmalloc+0xbf/0xe0
[ 53.128071] ? kmem_cache_alloc+0xf0/0x2b0
[ 53.129086] ? selinux_file_alloc_security+0xa9/0x180
[ 53.130808] ? security_file_alloc+0x42/0x90
[ 53.132377] ? get_empty_filp+0x194/0x4e0
[ 53.133657] ? alloc_file+0x24/0x3a0
[ 53.135352] ? sock_alloc_file+0x1f5/0x4c0
[ 53.136794] ? __sys_socket+0x136/0x1f0
[ 53.138026] ? __x64_sys_socket+0x6f/0xb0
[ 53.139260] ? do_syscall_64+0x148/0x5d0
[ 53.140431] ? create_object+0x7b2/0xb40
[ 53.141664] ? start_scan_thread+0x70/0x70
[ 53.142866] ? selinux_file_alloc_security+0xa9/0x180
[ 53.144341] ? debug_mutex_init+0x17/0x60
[ 53.145512] ? save_trace+0x300/0x300
[ 53.146648] ? debug_mutex_init+0x28/0x60
[ 53.147752] ? __mutex_init+0x1e0/0x260
[ 53.148740] ? housekeeping_affine+0x20/0x20
[ 53.149854] ? find_held_lock+0x32/0x1b0
[ 53.150944] ? __fd_install+0x267/0x6e0
[ 53.152013] ? lock_acquire+0x4a0/0x4a0
[ 53.153035] ? lock_downgrade+0x6e0/0x6e0
[ 53.154083] ? rcu_is_watching+0x81/0x130
[ 53.155140] ? sock_has_perm+0x275/0x370
[ 53.156171] ? selinux_secmark_relabel_packet+0xc0/0xc0
[ 53.157567] ? fget_raw+0x20/0x20
[ 53.158481] ? selinux_netlbl_socket_setsockopt+0xf1/0x430
[ 53.159909] ? selinux_netlbl_sock_rcv_skb+0x600/0x600
[ 53.161257] ? selinux_socket_setsockopt+0x5d/0x70
[ 53.162504] ? __sys_setsockopt+0x160/0x340
[ 53.163592] ? kernel_accept+0x2f0/0x2f0
[ 53.164657] ? __sys_socket+0x156/0x1f0
[ 53.165680] ? lock_acquire+0x4a0/0x4a0
[ 53.166683] ? __x64_sys_setsockopt+0xba/0x150
[ 53.167834] ? do_syscall_64+0x148/0x5d0
[ 53.168834] ? syscall_return_slowpath+0x470/0x470
[ 53.170045] ? syscall_return_slowpath+0x2df/0x470
[ 53.171320] ? prepare_exit_to_usermode+0x330/0x330
[ 53.172597] ? entry_SYSCALL_64_after_hwframe+0x59/0xbe
[ 53.174020] ? trace_hardirqs_off_thunk+0x1a/0x1c
[ 53.175280] ? entry_SYSCALL_64_after_hwframe+0x49/0xbe
[ 53.176729]
[ 53.177195] Allocated by task 2777:
[ 53.178120] kasan_kmalloc+0xbf/0xe0
[ 53.179056] __kmalloc_node+0x14a/0x4a0
[ 53.180062] kvmalloc_node+0xa2/0xe0
[ 53.181051] vmemdup_user+0x28/0x90
[ 53.181992] sctp_setsockopt_bindx+0x5b/0x2e0
[ 53.183087] sctp_setsockopt+0x251b/0x61d0
[ 53.184136]
[ 53.184542] Freed by task 1186:
[ 53.185433] __kasan_slab_free+0x125/0x170
[ 53.186504] kfree+0x10c/0x360
[ 53.187290]
[ 53.187714] The buggy address belongs to the object at ffff880066c03520
[ 53.187714] which belongs to the cache kmalloc-16 of size 16
[ 53.190837] The buggy address is located 0 bytes to the right of
[ 53.190837] 16-byte region [ffff880066c03520, ffff880066c03530)
[ 53.193987] The buggy address belongs to the page:
[ 53.195253] page:ffffea00019b0080 count:1 mapcount:0 mapping:0000000000000000 index:0x0 compound_mapcount: 0
[ 53.197773] flags: 0x100000000008100(slab|head)
[ 53.198972] raw: 0100000000008100 0000000000000000 0000000000000000 0000000100160016
[ 53.200961] raw: ffffea000199d8a0 ffff880066c004a0 ffff880066c0fa00 0000000000000000
[ 53.202891] page dumped because: kasan: bad access detected
[ 53.204040]
[ 53.204407] Memory state around the buggy address:
[ 53.205733] ffff880066c03400: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
[ 53.208193] ffff880066c03480: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
[ 53.210926] >ffff880066c03500: fc fc fc fc 00 00 fc fc fc fc fc fc fc fc fc fc
[ 53.213639] ^
[ 53.215473] ffff880066c03580: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
[ 53.218217] ffff880066c03600: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
[ 53.220957] ==================================================================
[ 53.223428] Disabling lock debugging due to kernel taint
Message from syslogd@zer0day at Apr 21 11:06:20 ...
kernel:[ 53.195253] page:ffffea00019b0080 count:1 mapcount:0 mapping:0000000000000000 index:0x0 compound_mapcount: 0
Message from syslogd@zer0day at Apr 21 11:06:20 ...
kernel:[ 53.197773] flags: 0x100000000008100(slab|head)
zero@zer0day:/tmp$ uname -a
Linux zer0day 4.17.0-rc1+ #34 SMP Sat Apr 21 17:01:13 KST 2018 x86_64 GNU/Linux
End
shrink_dcache_parent - soft lockup
Got from syzkaller & Found in LK v4.17.0-rc1.
Similar symptom prev ver patch
Call Trace (Dump)
[ 124.038017] watchdog: BUG: soft lockup - CPU#0 stuck for 22s! [syz-executor2:2903]
[ 124.039236] Modules linked in:
[ 124.039711] irq event stamp: 14111350
[ 124.040168] hardirqs last enabled at (14111349): [<ffffffffa3406b6a>] d_walk+0x18a/0xa60
[ 124.041330] hardirqs last disabled at (14111350): [<ffffffffa5800964>] interrupt_entry+0xc4/0xe0
[ 124.042453] softirqs last enabled at (433182): [<ffffffffa5a006f6>] __do_softirq+0x6f6/0xa8b
[ 124.043551] softirqs last disabled at (433143): [<ffffffffa2d539fb>] irq_exit+0x19b/0x1c0
[ 124.044616] CPU: 0 PID: 2903 Comm: syz-executor2 Not tainted 4.17.0-rc1+ #34
[ 124.045502] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014
[ 124.046627] RIP: 0010:d_walk+0x12c/0xa60
[ 124.047135] RSP: 0018:ffff8800438dfa50 EFLAGS: 00000293 ORIG_RAX: ffffffffffffff13
[ 124.048114] RAX: 0000000000000293 RBX: dffffc0000000000 RCX: ffffffffa3406b0a
[ 124.049073] RDX: 0000000000000000 RSI: ffff8800438dfc10 RDI: ffff8800438dfae0
[ 124.050000] RBP: ffff8800438dfbc8 R08: ffffed000c020c12 R09: ffffed000c020c11
[ 124.050796] R10: ffff88006010608b R11: 1ffff1000c020c11 R12: ffffed000871bf85
[ 124.051594] R13: ffff8800438dfc50 R14: ffffffffa33fdae0 R15: dffffc0000000000
[ 124.052399] FS: 0000000002648940(0000) GS:ffff88006d000000(0000) knlGS:0000000000000000
[ 124.053300] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 124.053946] CR2: 0000000002651c18 CR3: 00000000438ce000 CR4: 00000000000006f0
[ 124.054744] DR0: 0000000020000100 DR1: 0000000020000100 DR2: 0000000000000000
[ 124.055542] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000600
[ 124.056342] Call Trace:
[ 124.056649] ? __d_free_external+0x60/0x60
[ 124.057131] ? dget_parent+0x5b0/0x5b0
[ 124.057565] ? shrink_dentry_list+0x416/0x6a0
[ 124.058078] ? is_subdir+0x320/0x320
[ 124.058496] ? shrink_dcache_parent+0xc1/0x210
[ 124.059008] shrink_dcache_parent+0x164/0x210
[ 124.059512] ? path_has_submounts+0x1a0/0x1a0
[ 124.060018] ? down_write+0x91/0x130
[ 124.060439] ? vfs_rmdir+0xd0/0x420
[ 124.060862] vfs_rmdir+0x1cf/0x420
[ 124.061266] do_rmdir+0x3fa/0x5a0
[ 124.061663] ? __ia32_sys_mkdir+0x80/0x80
[ 124.062125] ? exit_to_usermode_loop+0x139/0x1e0
[ 124.062657] ? exit_to_usermode_loop+0x181/0x1e0
[ 124.063189] ? __ia32_compat_sys_getdents+0x4a0/0x4a0
[ 124.063764] ? syscall_slow_exit_work+0x400/0x400
[ 124.064303] ? do_syscall_64+0x8f/0x5d0
[ 124.064755] do_syscall_64+0x148/0x5d0
[ 124.065185] ? syscall_slow_exit_work+0x400/0x400
[ 124.065719] ? syscall_return_slowpath+0x470/0x470
[ 124.066307] ? syscall_return_slowpath+0x2df/0x470
[ 124.066925] ? entry_SYSCALL_64_after_hwframe+0x59/0xbe
[ 124.067518] ? trace_hardirqs_off_thunk+0x1a/0x1c
[ 124.068012] watchdog: BUG: soft lockup - CPU#1 stuck for 22s! [syz-executor3:7303]
[ 124.068067] ? entry_SYSCALL_64_after_hwframe+0x49/0xbe
[ 124.068785] Modules linked in:
[ 124.069398] Code:
[ 124.069690] irq event stamp: 14006166
[ 124.069698] hardirqs last enabled at (14006165): [<ffffffffa3406b6a>] d_walk+0x18a/0xa60
[ 124.069936] f8
[ 124.070308] hardirqs last disabled at (14006166): [<ffffffffa5800964>] interrupt_entry+0xc4/0xe0
[ 124.070315] softirqs last enabled at (784694): [<ffffffffa5a006f6>] __do_softirq+0x6f6/0xa8b
[ 124.071217] 48
[ 124.071404] softirqs last disabled at (784609): [<ffffffffa2d539fb>] irq_exit+0x19b/0x1c0
[ 124.071410] CPU: 1 PID: 7303 Comm: syz-executor3 Not tainted 4.17.0-rc1+ #34
[ 124.072394] 89
[ 124.073219] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014
[ 124.073226] RIP: 0010:lock_acquire+0x1f3/0x4a0
[ 124.073422] 85
[ 124.074135] RSP: 0018:ffff88006a03f950 EFLAGS: 00000246 ORIG_RAX: ffffffffffffff13
[ 124.074856] e8
[ 124.075020] RAX: 0000000000000007 RBX: 1ffff1000d407f2e RCX: 0000000000000000
[ 124.075024] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000246
[ 124.075928] fe
[ 124.076329] RBP: ffff88006c24c540 R08: 0000000000000000 R09: 0000000000000004
[ 124.076333] R10: ffff88006c24ce10 R11: 0000000000000001 R12: 0000000000000000
[ 124.076525] ff
[ 124.077184] R13: 0000000000000002 R14: 0000000000000000 R15: 0000000000000000
[ 124.077189] FS: 00000000019eb940(0000) GS:ffff88006d100000(0000) knlGS:0000000000000000
[ 124.077382] ff
[ 124.077998] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 124.078003] CR2: 00007ffd885fff88 CR3: 00000000645ec000 CR4: 00000000000006e0
[ 124.078729] e8
[ 124.078895] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 124.079620] 72
[ 124.080248] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[ 124.080251] Call Trace:
[ 124.080444] 1c
[ 124.081078] ? lock_downgrade+0x6e0/0x6e0
[ 124.081891] c2
[ 124.082063] ? do_raw_spin_trylock+0x1b0/0x1b0
[ 124.082076] ? mark_held_locks+0xa8/0xf0
[ 124.082656] ff
[ 124.083283] d_walk+0x41b/0xa60
[ 124.083468] 48
[ 124.084091] ? d_walk+0x3ea/0xa60
[ 124.084408] 8b
[ 124.085135] ? __d_free_external+0x60/0x60
[ 124.085426] 85
[ 124.085611] ? dget_parent+0x5b0/0x5b0
[ 124.086058] e8
[ 124.086247] ? shrink_dentry_list+0x416/0x6a0
[ 124.086746] fe
[ 124.087139] ? is_subdir+0x320/0x320
[ 124.087348] ff
[ 124.087665] ? shrink_dcache_parent+0xc1/0x210
[ 124.087869] ff
[ 124.088211] shrink_dcache_parent+0x164/0x210
[ 124.088413] c6
[ 124.088866] ? path_has_submounts+0x1a0/0x1a0
[ 124.089083] 00
[ 124.089489] ? down_write+0x91/0x130
[ 124.089724] 04
[ 124.090189] ? vfs_rmdir+0xd0/0x420
[ 124.090205] vfs_rmdir+0x1cf/0x420
[ 124.090411] f6
[ 124.090808] do_rmdir+0x3fa/0x5a0
[ 124.091085] 85
[ 124.091639] ? __ia32_sys_mkdir+0x80/0x80
[ 124.091841] 18
[ 124.092282] ? exit_to_usermode_loop+0x139/0x1e0
[ 124.092486] ff
[ 124.092913] ? exit_to_usermode_loop+0x181/0x1e0
[ 124.093126] ff
[ 124.093476] ? __ia32_compat_sys_getdents+0x4a0/0x4a0
[ 124.093482] ? syscall_slow_exit_work+0x400/0x400
[ 124.093695] ff
[ 124.094044] ? do_syscall_64+0x8f/0x5d0
[ 124.094416] 01
[ 124.094608] do_syscall_64+0x148/0x5d0
[ 124.094983] 0f
[ 124.095169] ? syscall_slow_exit_work+0x400/0x400
[ 124.095622] 85
[ 124.095805] ? syscall_return_slowpath+0x470/0x470
[ 124.096336] ea
[ 124.096561] ? syscall_return_slowpath+0x2df/0x470
[ 124.097132] 00
[ 124.097355] ? entry_SYSCALL_64_after_hwframe+0x59/0xbe
[ 124.097950] 00
[ 124.098512] ? trace_hardirqs_off_thunk+0x1a/0x1c
[ 124.098732] 00
[ 124.099195] ? entry_SYSCALL_64_after_hwframe+0x49/0xbe
[ 124.099412] e8
[ 124.099860] Code:
[ 124.100068] 56
[ 124.100632] ea
[ 124.100861] 1c
[ 124.101334] 03
[ 124.101556] c2
[ 124.102018] 0f b6
[ 124.102247] ff
[ 124.102755] 14 02
[ 124.102985] 9c
[ 124.103446] 48 89
[ 124.103675] 58
[ 124.104190] f8 83
[ 124.104421] <0f>
[ 124.104626] e0 07
[ 124.104855] 1f
[ 124.105034] 83
[ 124.105257] 44
[ 124.105442] c0
[ 124.105669] 00
[ 124.105874] 03 38
[ 124.106105] 00
[ 124.106309] d0 7c
[ 124.106536] 48
[ 124.106739] 08 84
[ 124.106968] 89
[ 124.107173] d2 0f
[ 124.107425] c3
[ 124.107631] 85 3f
[ 124.107874] fa
[ 124.108057] 02 00
[ 124.108297] 66
[ 124.108477] 00 c7
[ 124.108706] 0f
[ 124.108910] 85 2c
[ 124.109140] 1f
[ 124.109344] 08 00
[ 124.109569] 44
[ 124.109773] 00 00
[ 124.110004] 00
[ 124.110210] 00 00
[ 124.110438] 00
[ 124.110641] 00 48
[ 124.110875] e8
[ 124.111089] 8b
[ 124.111309] 90
[ 124.111556] 3c
[ 124.111783] c9
[ 124.112030] 24
[ 124.112250] a6 ff
[ 124.112481] 57
[ 124.112677] ff
[ 124.112899] 9d <0f>
[ 124.115848] 1f 44 00 00 48 b8 00 00 00 00 00 fc ff df 48 01 c3 48 c7 03
Code
0: 1c c2 sbb al,0xc2
2: ff 48 8b dec DWORD PTR [rax-0x75]
5: 85 e8 test eax,ebp
7: fe (bad)
8: ff (bad)
9: ff c6 inc esi
b: 00 04 f6 add BYTE PTR [rsi+rsi*8],al
e: 85 18 test DWORD PTR [rax],ebx
10: ff (bad)
11: ff (bad)
12: ff 01 inc DWORD PTR [rcx]
14: *0f 85 ea 00 00 00 jne 0x104
1a: e8 56 ea 1c 03 call 0x31cea75
1f: c2 0f b6 ret 0xb60f
22: ff 14 02 call QWORD PTR [rdx+rax*1]
25: 9c pushf
26: 48 89 58 f8 mov QWORD PTR [rax-0x8],rbx
2a: 83 0f e0 or DWORD PTR [rdi],0xffffffe0
2d: 07 (bad)
2e: 1f (bad)
2f: 83 44 c0 00 03 add DWORD PTR [rax+rax*8+0x0],0x3
34: 38 00 cmp BYTE PTR [rax],al
36: d0 7c 48 08 sar BYTE PTR [rax+rcx*2+0x8],1
3a: 84 89 d2 0f c3 85 test BYTE PTR [rcx-0x7a3cf02e],cl
40: 3f (bad)
41: fa cli
42: 02 00 add al,BYTE PTR [rax]
44: 66 00 c7 data16 add bh,al
47: 0f 85 2c 1f 08 00 jne 0x81f79
4d: 44 00 00 add BYTE PTR [rax],r8b
50: 00 00 add BYTE PTR [rax],al
52: 00 00 add BYTE PTR [rax],al
54: 00 48 e8 add BYTE PTR [rax-0x18],cl
57: 8b 90 3c c9 24 a6 mov edx,DWORD PTR [rax-0x59db36c4]
5d: ff 57 ff call QWORD PTR [rdi-0x1]
60: 9d popf
61: *0f 1f 44 00 00 nop DWORD PTR [rax+rax*1+0x0]
66: 48 b8 00 00 00 00 00 movabs rax,0xdffffc0000000000
6d: fc ff df
70: 48 01 c3 add rbx,rax
73: 48 rex.W
74: c7 .byte 0xc7
75: 03 .byte 0x3
looks not good... :(
Source
...
static void shrink_dentry_list(struct list_head *list)
{
struct dentry *dentry, *parent;
while (!list_empty(list)) {
struct inode *inode;
dentry = list_entry(list->prev, struct dentry, d_lru);
spin_lock(&dentry->d_lock);
parent = lock_parent(dentry);
/*
* The dispose list is isolated and dentries are not accounted
* to the LRU here, so we can simply remove it from the list
* here regardless of whether it is referenced or not.
*/
d_shrink_del(dentry);
/*
* We found an inuse dentry which was not removed from
* the LRU because of laziness during lookup. Do not free it.
*/
if (dentry->d_lockref.count > 0) {
spin_unlock(&dentry->d_lock);
if (parent)
spin_unlock(&parent->d_lock);
continue;
}
if (unlikely(dentry->d_flags & DCACHE_DENTRY_KILLED)) {
bool can_free = dentry->d_flags & DCACHE_MAY_FREE;
spin_unlock(&dentry->d_lock);
if (parent)
spin_unlock(&parent->d_lock);
if (can_free)
dentry_free(dentry);
continue;
}
inode = dentry->d_inode;
if (inode && unlikely(!spin_trylock(&inode->i_lock))) {
d_shrink_add(dentry, list);
spin_unlock(&dentry->d_lock);
if (parent)
spin_unlock(&parent->d_lock);
continue;
}
__dentry_kill(dentry);
/*
* We need to prune ancestors too. This is necessary to prevent
* quadratic behavior of shrink_dcache_parent(), but is also
* expected to be beneficial in reducing dentry cache
* fragmentation.
*/
dentry = parent;
while (dentry && !lockref_put_or_lock(&dentry->d_lockref)) {
parent = lock_parent(dentry);
if (dentry->d_lockref.count != 1) {
dentry->d_lockref.count--;
spin_unlock(&dentry->d_lock);
if (parent)
spin_unlock(&parent->d_lock);
break;
}
inode = dentry->d_inode; /* can't be NULL */
if (unlikely(!spin_trylock(&inode->i_lock))) {
spin_unlock(&dentry->d_lock);
if (parent)
spin_unlock(&parent->d_lock);
cpu_relax();
continue;
}
__dentry_kill(dentry);
dentry = parent;
}
}
}
...
/**
* shrink_dcache_parent - prune dcache
* @parent: parent of entries to prune
*
* Prune the dcache to remove unused children of the parent dentry.
*/
void shrink_dcache_parent(struct dentry *parent)
{
for (;;) {
struct select_data data;
INIT_LIST_HEAD(&data.dispose);
data.start = parent;
data.found = 0;
d_walk(parent, &data, select_collect, NULL);
if (!data.found)
break;
shrink_dentry_list(&data.dispose);
cond_resched();
}
}
EXPORT_SYMBOL(shrink_dcache_parent);
...
struct dentry *dget_parent(struct dentry *dentry)
{
int gotref;
struct dentry *ret;
/*
* Do optimistic parent lookup without any
* locking.
*/
rcu_read_lock();
ret = READ_ONCE(dentry->d_parent);
gotref = lockref_get_not_zero(&ret->d_lockref);
rcu_read_unlock();
if (likely(gotref)) {
if (likely(ret == READ_ONCE(dentry->d_parent)))
return ret;
dput(ret);
}
repeat:
/*
* Don't need rcu_dereference because we re-check it was correct under
* the lock.
*/
rcu_read_lock();
ret = dentry->d_parent;
spin_lock(&ret->d_lock);
if (unlikely(ret != dentry->d_parent)) {
spin_unlock(&ret->d_lock);
rcu_read_unlock();
goto repeat;
}
rcu_read_unlock();
BUG_ON(!ret->d_lockref.count);
ret->d_lockref.count++;
spin_unlock(&ret->d_lock);
return ret;
}
EXPORT_SYMBOL(dget_parent);
...
I'll comment later about the codes...
End
unregister_netdevice - waiting for DEV to become free
Got from syzkaller & Found in LK v4.17.0-rc1.
Call Trace (Dump)
...
[ 292.993864] unregister_netdevice: waiting for lo to become free. Usage count = 5
...
ata_scsi_queuecmd - soft lockup
Got from syzkaller & Found in LK v4.17.0-rc1.
Call Trace (Dump)
...
watchdog: BUG: soft lockup - CPU#0 stuck for 22s! [kworker/0:1:23]
Modules linked in:
irq event stamp: 223171
hardirqs last enabled at (223170): [<ffffffff9c92d7a6>] __raw_spin_unlock_irqrestore include/linux/spinlock_api_smp.h:160 [inline]
hardirqs last enabled at (223170): [<ffffffff9c92d7a6>] _raw_spin_unlock_irqrestore+0x46/0x60 kernel/locking/spinlock.c:184
hardirqs last disabled at (223171): [<ffffffff9ca00964>] interrupt_entry+0xc4/0xe0 arch/x86/entry/entry_64.S:625
softirqs last enabled at (223104): [<ffffffff9cc006f6>] __do_softirq+0x6f6/0xa8b kernel/softirq.c:311
softirqs last disabled at (223133): [<ffffffff99f539fb>] invoke_softirq kernel/softirq.c:365 [inline]
softirqs last disabled at (223133): [<ffffffff99f539fb>] irq_exit+0x19b/0x1c0 kernel/softirq.c:405
CPU: 0 PID: 23 Comm: kworker/0:1 Not tainted 4.17.0-rc1+ #34
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014
Workqueue: events e1000_watchdog
RIP: 0010:arch_local_irq_restore arch/x86/include/asm/paravirt.h:783 [inline]
RIP: 0010:__raw_spin_unlock_irqrestore include/linux/spinlock_api_smp.h:160 [inline]
RIP: 0010:_raw_spin_unlock_irqrestore+0x4b/0x60 kernel/locking/spinlock.c:184
RSP: 0018:ffff88006d006bd8 EFLAGS: 00000246 ORIG_RAX: ffffffffffffff13
RAX: 0000000000000007 RBX: 0000000000000246 RCX: 0000000000000000
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000246
RBP: ffff880064c1b2a8 R08: ffffed000c983656 R09: ffff88006c074db8
R10: 0000000000000000 R11: 0000000000000000 R12: ffffffff9b6faf30
R13: ffff880064e58000 R14: 000000000000000a R15: ffff880064e58010
FS: 0000000000000000(0000) GS:ffff88006d000000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000000a0e0f8 CR3: 00000000676c0000 CR4: 00000000000006f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
<IRQ>
spin_unlock_irqrestore include/linux/spinlock.h:365 [inline]
ata_scsi_queuecmd+0x2d7/0x690 drivers/ata/libata-scsi.c:4389
scsi_dispatch_cmd+0x390/0xb10 drivers/scsi/scsi_lib.c:1761
scsi_request_fn+0xba0/0x1be0 drivers/scsi/scsi_lib.c:1899
</IRQ>
watchdog: BUG: soft lockup - CPU#1 stuck for 23s! [logrotate:2850]
Modules linked in:
irq event stamp: 253398
hardirqs last enabled at (253397): [<ffffffff9ca00a60>] restore_regs_and_return_to_kernel+0x0/0x30
hardirqs last disabled at (253398): [<ffffffff9ca00964>] interrupt_entry+0xc4/0xe0 arch/x86/entry/entry_64.S:625
softirqs last enabled at (253396): [<ffffffff9cc006f6>] __do_softirq+0x6f6/0xa8b kernel/softirq.c:311
softirqs last disabled at (253389): [<ffffffff99f539fb>] invoke_softirq kernel/softirq.c:365 [inline]
softirqs last disabled at (253389): [<ffffffff99f539fb>] irq_exit+0x19b/0x1c0 kernel/softirq.c:405
CPU: 1 PID: 2850 Comm: logrotate Not tainted 4.17.0-rc1+ #34
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014
RIP: 0010:rep_nop arch/x86/include/asm/processor.h:667 [inline]
RIP: 0010:cpu_relax arch/x86/include/asm/processor.h:672 [inline]
RIP: 0010:csd_lock_wait kernel/smp.c:108 [inline]
RIP: 0010:smp_call_function_single+0x3b8/0x510 kernel/smp.c:302
RSP: 0018:ffff8800625cf4c0 EFLAGS: 00000293
ORIG_RAX: ffffffffffffff13
RAX: ffff880066781740 RBX: ffff8800625cf538 RCX: ffffffff9a17e0e6
RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff8800625cf538
RBP: ffff8800625cf620 R08: ffffed000da05791 R09: ffff880066781f90
Code:
R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000001
R13: dffffc0000000000 R14: 0000000000000000 R15: ffffed000c4b9eb4
51
FS: 00007faffc8de7a0(0000) GS:ffff88006d100000(0000) knlGS:0000000000000000
76 fd
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007faffc8e3000 CR3: 00000000676c0000 CR4: 00000000000006e0
f6 c7
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
02 75
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
19 48
89
df
57
9d 0f
1f 44
smp_call_function_many+0x6b0/0x820 kernel/smp.c:434
00 00
e8 19
5d 74
fd 65
ff 0d
native_flush_tlb_others+0xec/0x620 arch/x86/mm/tlb.c:595
72 06
6f 63
5b 5d
c3
e8 ea
e8
74
flush_tlb_others arch/x86/include/asm/paravirt.h:309 [inline]
flush_tlb_mm_range+0x255/0x400 arch/x86/mm/tlb.c:644
fd 48
89 df
57 9d
<0f> 1f
44
00 00
tlb_flush_mmu_tlbonly+0x277/0x430 mm/memory.c:246
eb
e5
tlb_flush_mmu mm/memory.c:267 [inline]
arch_tlb_finish_mmu+0x97/0x140 mm/memory.c:283
0f
tlb_finish_mmu+0x119/0x1c0 mm/memory.c:433
1f
40 00
66
unmap_region+0x382/0x4e0 mm/mmap.c:2532
2e 0f
1f 84
00 00
00
00 00
do_munmap+0x50a/0xd50 mm/mmap.c:2744
vm_munmap+0x102/0x180 mm/mmap.c:2763
__do_sys_munmap mm/mmap.c:2773 [inline]
__se_sys_munmap mm/mmap.c:2770 [inline]
__x64_sys_munmap+0x5b/0x70 mm/mmap.c:2770
do_syscall_64+0x148/0x5d0 arch/x86/entry/common.c:287
Code: 00 00 fc ff df 44 89 bc 24 e0 00 00 00 48 c1 e8 03 4c 01 e8 41 83 e7 01 c6 00 f8 74 53 49 89 c7 48 83 c3 18 e8 7a a6 0a 00 f3 90 <48> 89 da 41 c6 07 04 48 c1 ea 03 42 0f b6 14 2a 84 d2 74 09 80
I'll update a post later...
End
d_walk - soft lockup
Got from syzkaller & Found in LK v4.17.0-rc1.
Call Trace (Dump)
watchdog: BUG: soft lockup - CPU#1 stuck for 22s! [syz-executor4:7810]
Modules linked in:
irq event stamp: 13333674
hardirqs last enabled at (13333673): [<ffffffff83e06b6a>] seqcount_lockdep_reader_access include/linux/seqlock.h:83 [inline]
hardirqs last enabled at (13333673): [<ffffffff83e06b6a>] read_seqcount_begin include/linux/seqlock.h:164 [inline]
hardirqs last enabled at (13333673): [<ffffffff83e06b6a>] read_seqbegin include/linux/seqlock.h:433 [inline]
hardirqs last enabled at (13333673): [<ffffffff83e06b6a>] read_seqbegin_or_lock include/linux/seqlock.h:529 [inline]
hardirqs last enabled at (13333673): [<ffffffff83e06b6a>] d_walk+0x18a/0xa60 fs/dcache.c:1248
hardirqs last disabled at (13333674): [<ffffffff86200964>] interrupt_entry+0xc4/0xe0 arch/x86/entry/entry_64.S:625
softirqs last enabled at (2250648): [<ffffffff864006f6>] __do_softirq+0x6f6/0xa8b kernel/softirq.c:311
softirqs last disabled at (2250639): [<ffffffff837539fb>] invoke_softirq kernel/softirq.c:365 [inline]
softirqs last disabled at (2250639): [<ffffffff837539fb>] irq_exit+0x19b/0x1c0 kernel/softirq.c:405
CPU: 1 PID: 7810 Comm: syz-executor4 Not tainted 4.17.0-rc1+ #34
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014
RIP: 0010:arch_local_irq_restore arch/x86/include/asm/paravirt.h:783 [inline]
RIP: 0010:lock_acquire+0x1f3/0x4a0 kernel/locking/lockdep.c:3923
RSP: 0018:ffff88003fd7f940 EFLAGS: 00000246 ORIG_RAX: ffffffffffffff13
RAX: 0000000000000007 RBX: 1ffff10007faff2c RCX: 0000000000000000
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000246
RBP: ffff88003957ae40 R08: 0000000000000003 R09: ffffffff881d38e0
R10: ffff88003957b710 R11: 0000000000000001 R12: 0000000000000000
R13: 0000000000000000 R14: 0000000000000001 R15: 0000000000000000
FS: 0000000001688940(0000) GS:ffff88006d100000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007ffc28f88e84 CR3: 000000003fd72000 CR4: 00000000000006e0
DR0: 0000000020000100 DR1: 0000000020000100 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000600
Call Trace:
_raw_spin_lock_nested+0x25/0x30 kernel/locking/spinlock.c:354
d_walk+0x359/0xa60 fs/dcache.c:1274
shrink_dcache_parent+0x164/0x210 fs/dcache.c:1486
vfs_rmdir+0x1cf/0x420 fs/namei.c:3850
do_rmdir+0x3fa/0x5a0 fs/namei.c:3911
do_syscall_64+0x148/0x5d0 arch/x86/entry/common.c:287
Code: ea 03 0f b6 14 02 48 89 f8 83 e0 07 83 c0 03 38 d0 7c 08 84 d2 0f 85 3f 02 00 00 c7 85 2c 08 00 00 00 00 00 00 48 8b 3c 24 57 9d <0f> 1f 44 00 00 48 b8 00 00 00 00 00 fc ff df 48 01 c3 48 c7 03
watchdog: BUG: soft lockup - CPU#0 stuck for 22s! [syz-executor1:2869]
Modules linked in:
irq event stamp: 15849430
hardirqs last enabled at (15849429): [<ffffffff83e06b6a>] seqcount_lockdep_reader_access include/linux/seqlock.h:83 [inline]
hardirqs last enabled at (15849429): [<ffffffff83e06b6a>] read_seqcount_begin include/linux/seqlock.h:164 [inline]
hardirqs last enabled at (15849429): [<ffffffff83e06b6a>] read_seqbegin include/linux/seqlock.h:433 [inline]
hardirqs last enabled at (15849429): [<ffffffff83e06b6a>] read_seqbegin_or_lock include/linux/seqlock.h:529 [inline]
hardirqs last enabled at (15849429): [<ffffffff83e06b6a>] d_walk+0x18a/0xa60 fs/dcache.c:1248
hardirqs last disabled at (15849430): [<ffffffff86200964>] interrupt_entry+0xc4/0xe0 arch/x86/entry/entry_64.S:625
softirqs last enabled at (2389822): [<ffffffff864006f6>] __do_softirq+0x6f6/0xa8b kernel/softirq.c:311
softirqs last disabled at (2389715): [<ffffffff837539fb>] invoke_softirq kernel/softirq.c:365 [inline]
softirqs last disabled at (2389715): [<ffffffff837539fb>] irq_exit+0x19b/0x1c0 kernel/softirq.c:405
CPU: 0 PID: 2869 Comm: syz-executor1 Tainted: G L 4.17.0-rc1+ #34
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014
RIP: 0010:__sanitizer_cov_trace_pc+0x0/0x50 kernel/kcov.c:146
RSP: 0018:ffff8800444d7a48 EFLAGS: 00000297 ORIG_RAX: ffffffffffffff13
RAX: 0000000000000000 RBX: ffff8800628d1c78 RCX: 0000000000000000
RDX: 0000000000000000 RSI: ffff8800628d1b88 RDI: ffff8800444d7c28
RBP: ffff8800444d7bc8 R08: ffffed000c51a382 R09: ffffed000c51a381
R10: ffff8800628d1c0b R11: 1ffff1000c51a381 R12: ffff8800628d1c08
R13: ffffed000889af6c R14: ffff8800628d0d78 R15: dffffc0000000000
FS: 000000000173a940(0000) GS:ffff88006d000000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000001743c18 CR3: 0000000045180000 CR4: 00000000000006f0
DR0: 0000000020000100 DR1: 0000000020000100 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000600
Call Trace:
d_walk+0x38c/0xa60 fs/dcache.c:1291
shrink_dcache_parent+0x164/0x210 fs/dcache.c:1486
vfs_rmdir+0x1cf/0x420 fs/namei.c:3850
do_rmdir+0x3fa/0x5a0 fs/namei.c:3911
do_syscall_64+0x148/0x5d0 arch/x86/entry/common.c:287
Code: 83 c1 01 4a 89 7c 10 e0 4a 89 74 10 e8 4a 89 54 10 f0 4a 89 4c d8 20 4c 89 08 f3 c3 0f 1f 44 00 00 66 2e 0f 1f 84 00 00 00 00 00 <65> 48 8b 04 25 80 de 01 00 65 8b 15 a0 56 5f 7c 81 e2 00 01 1f
I'll update post later...
End__
e1000_update_stats - soft lockup
Got from syzkaller & Found in LK v4.17.0-rc1.
Call Trace (Dump)
watchdog: BUG: soft lockup - CPU#0 stuck for 22s! [kworker/0:1:24]
Modules linked in:
irq event stamp: 22544
hardirqs last enabled at (22543): [<ffffffff90a00a60>] restore_regs_and_return_to_kernel+0x0/0x30
hardirqs last disabled at (22544): [<ffffffff90a00964>] interrupt_entry+0xc4/0xe0 arch/x86/entry/entry_64.S:625
softirqs last enabled at (22532): [<ffffffff8fe4cc31>] neigh_periodic_work+0x6b1/0xa90 net/core/neighbour.c:862
softirqs last disabled at (22528): [<ffffffff8fe4c65b>] neigh_periodic_work+0xdb/0xa90 net/core/neighbour.c:794
CPU: 0 PID: 24 Comm: kworker/0:1 Not tainted 4.17.0-rc1+ #34
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014
Workqueue: events e1000_watchdog
RIP: 0010:arch_local_irq_restore arch/x86/include/asm/paravirt.h:783 [inline]
RIP: 0010:__raw_spin_unlock_irqrestore include/linux/spinlock_api_smp.h:160 [inline]
RIP: 0010:_raw_spin_unlock_irqrestore+0x4b/0x60 kernel/locking/spinlock.c:184
RSP: 0018:ffff88006c13f4c0 EFLAGS: 00000293 ORIG_RAX: ffffffffffffff13
RAX: 0000000000000007 RBX: 0000000000000293 RCX: 0000000000000000
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000293
RBP: ffff880066e82de0 R08: ffffed000cdd05bd R09: ffff88006c0736b8
R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
R13: ffff880066e82bc0 R14: ffff880066e82fb8 R15: ffff880066e82180
FS: 0000000000000000(0000) GS:ffff88006d000000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007f4393533000 CR3: 0000000061aec000 CR4: 00000000000006f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
spin_unlock_irqrestore include/linux/spinlock.h:365 [inline]
e1000_update_stats+0x13ed/0x1d60 drivers/net/ethernet/intel/e1000/e1000_main.c:3768
e1000_watchdog+0x335/0x11a0 drivers/net/ethernet/intel/e1000/e1000_main.c:2521
Code: 51 76 fd f6 c7 02 75 19 48 89 df 57 9d 0f 1f 44 00 00 e8 19 5d 74 fd 65 ff 0d 72 06 6f 6f 5b 5d c3 e8 ea e8 74 fd 48 89 df 57 9d <0f> 1f 44 00 00 eb e5 0f 1f 40 00 66 2e 0f 1f 84 00 00 00 00 00
watchdog: BUG: soft lockup - CPU#0 stuck for 21s! [kworker/0:1:24]
Modules linked in:
irq event stamp: 22987
hardirqs last enabled at (22986): [<ffffffff90a00a60>] restore_regs_and_return_to_kernel+0x0/0x30
hardirqs last disabled at (22987): [<ffffffff90a00964>] interrupt_entry+0xc4/0xe0 arch/x86/entry/entry_64.S:625
softirqs last enabled at (22958): [<ffffffff90c006f6>] __do_softirq+0x6f6/0xa8b kernel/softirq.c:311
softirqs last disabled at (22979): [<ffffffff8df539fb>] invoke_softirq kernel/softirq.c:365 [inline]
softirqs last disabled at (22979): [<ffffffff8df539fb>] irq_exit+0x19b/0x1c0 kernel/softirq.c:405
CPU: 0 PID: 24 Comm: kworker/0:1 Tainted: G L 4.17.0-rc1+ #34
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014
Workqueue: events e1000_watchdog
RIP: 0010:arch_local_irq_enable arch/x86/include/asm/paravirt.h:793 [inline]
RIP: 0010:__do_softirq+0x26c/0xa8b kernel/softirq.c:269
RSP: 0018:ffff88006d007cb0 EFLAGS: 00000246 ORIG_RAX: ffffffffffffff13
RAX: 0000000000000007 RBX: ffff88006c072e40 RCX: 0000000000000000
RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff88006c07366c
RBP: 1ffff1000da00fe1 R08: 0000000000000000 R09: ffff88006c0736b8
R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
R13: 0000000000000282 R14: 0000000000000000 R15: dffffc0000000000
FS: 0000000000000000(0000) GS:ffff88006d000000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 000000c42ac0b140 CR3: 000000001ec22000 CR4: 00000000000006f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
<IRQ>
invoke_softirq kernel/softirq.c:365 [inline]
irq_exit+0x19b/0x1c0 kernel/softirq.c:405
exiting_irq arch/x86/include/asm/apic.h:525 [inline]
smp_apic_timer_interrupt+0x162/0x6d0 arch/x86/kernel/apic/apic.c:1052
apic_timer_interrupt+0xf/0x20 arch/x86/entry/entry_64.S:863
</IRQ>
RIP: 0010:arch_local_irq_restore arch/x86/include/asm/paravirt.h:783 [inline]
RIP: 0010:__raw_spin_unlock_irqrestore include/linux/spinlock_api_smp.h:160 [inline]
RIP: 0010:_raw_spin_unlock_irqrestore+0x4b/0x60 kernel/locking/spinlock.c:184
RSP: 0018:ffff88006c13f4c0 EFLAGS: 00000293 ORIG_RAX: ffffffffffffff13
RAX: 0000000000000007 RBX: 0000000000000293 RCX: 0000000000000000
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000293
RBP: ffff880066e82de0 R08: ffffed000cdd05bd R09: ffff88006c0736b8
R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
R13: ffff880066e82bc0 R14: ffff880066e82fb8 R15: ffff880066e82180
spin_unlock_irqrestore include/linux/spinlock.h:365 [inline]
e1000_update_stats+0x13ed/0x1d60 drivers/net/ethernet/intel/e1000/e1000_main.c:3768
e1000_watchdog+0x335/0x11a0 drivers/net/ethernet/intel/e1000/e1000_main.c:2521
Code: 34 0a 00 00 00 48 c1 e8 03 4c 01 f8 48 89 44 24 20 48 c7 c0 80 a2 02 00 65 c7 00 00 00 00 00 e8 2b be 47 fd fb 66 0f 1f 44 00 00 <b8> ff ff ff ff 48 c7 44 24 08 00 91 80 91 41 0f bc c5 83 c0 01
...
**********************************************************
** NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE **
** **
** trace_printk() being used. Allocating extra memory. **
** **
** This means that this is a DEBUG kernel and it is **
** unsafe for production use. **
** **
** If you see this message and you are not debugging **
** the kernel, report this immediately to your vendor! **
** **
** NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE **
**********************************************************
...
I'll update a post later...
End
hpet_open - soft lockup
Got from syzkaller & Found in LK v4.17.0-rc1.
Call Trace (Dump)
hrtimer: interrupt took 3048710 ns
watchdog: BUG: soft lockup - CPU#1 stuck for 28s! [syz-fuzzer:2773]
Modules linked in:
irq event stamp: 161094
hardirqs last enabled at (161093): [<ffffffffb6f2d744>] __raw_spin_unlock_irq include/linux/spinlock_api_smp.h:168 [inline]
hardirqs last enabled at (161093): [<ffffffffb6f2d744>] _raw_spin_unlock_irq+0x24/0x40 kernel/locking/spinlock.c:192
hardirqs last disabled at (161094): [<ffffffffb7000964>] interrupt_entry+0xc4/0xe0 arch/x86/entry/entry_64.S:625
softirqs last enabled at (160916): [<ffffffffb72006f6>] __do_softirq+0x6f6/0xa8b kernel/softirq.c:311
softirqs last disabled at (160899): [<ffffffffb45539fb>] invoke_softirq kernel/softirq.c:365 [inline]
softirqs last disabled at (160899): [<ffffffffb45539fb>] irq_exit+0x19b/0x1c0 kernel/softirq.c:405
CPU: 1 PID: 2773 Comm: syz-fuzzer Not tainted 4.17.0-rc1+ #34
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014
RIP: 0010:arch_local_irq_enable arch/x86/include/asm/paravirt.h:793 [inline]
RIP: 0010:__raw_spin_unlock_irq include/linux/spinlock_api_smp.h:168 [inline]
RIP: 0010:_raw_spin_unlock_irq+0x2b/0x40 kernel/locking/spinlock.c:192
RSP: 0018:ffff880064fff728 EFLAGS: 00000246 ORIG_RAX: ffffffffffffff13
RAX: 0000000000000007 RBX: ffffffffb8103620 RCX: 0000000000000000
RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff8800699bcd6c
RBP: 0000000000000032 R08: fffffbfff70206c5 R09: ffff8800699bcd90
R10: 0000000000000000 R11: 0000000000000000 R12: ffff880064fff778
R13: 0000000000000032 R14: 0000000000000000 R15: 0000000000000002
FS: 000000c4202eb868(0000) GS:ffff88006d100000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 000000c42bb4e0d0 CR3: 000000006bf92000 CR4: 00000000000006e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
spin_unlock_irq include/linux/spinlock.h:360 [inline]
hpet_timer_set_irq drivers/char/hpet.c:221 [inline]
hpet_open+0x33d/0x710 drivers/char/hpet.c:293
misc_open+0x35f/0x4d0 drivers/char/misc.c:154
chrdev_open+0x21f/0x6b0 fs/char_dev.c:417
do_dentry_open+0x65c/0xe70 fs/open.c:784
vfs_open+0x11c/0x200 fs/open.c:906
do_last fs/namei.c:3365 [inline]
path_openat+0xb1f/0x3320 fs/namei.c:3500
do_filp_open+0x255/0x380 fs/namei.c:3535
do_sys_open+0x4b0/0x640 fs/open.c:1093
do_syscall_64+0x148/0x5d0 arch/x86/entry/common.c:287
Code: 53 48 8b 54 24 08 48 89 fb 48 8d 7f 18 be 01 00 00 00 e8 09 53 75 fd 48 89 df e8 c1 51 76 fd e8 4c e9 74 fd fb 66 0f 1f 44 00 00 <65> ff 0d be 06 0f 49 5b c3 66 90 66 2e 0f 1f 84 00 00 00 00 00
INFO: rcu_sched self-detected stall on CPU
1-...!: (1 GPs behind) idle=2e6/1/4611686018427387906 softirq=27263/27266 fqs=0
(t=343249 jiffies g=6526 c=6525 q=52)
rcu_sched kthread starved for 343249 jiffies! g6526 c6525 f0x0 RCU_GP_WAIT_FQS(3) ->state=0x402 ->cpu=0
RCU grace-period kthread stack dump:
rcu_sched I20568 9 2 0x80000000
Call Trace:
INFO: rcu_sched detected stalls on CPUs/tasks:
schedule+0xf0/0x3a0 kernel/sched/core.c:3549
schedule_timeout+0x113/0x210 kernel/time/timer.c:1801
rcu_gp_kthread+0xf20/0x3a00 kernel/rcu/tree.c:2231
kthread+0x32b/0x3f0 kernel/kthread.c:238
ret_from_fork+0x3a/0x50 arch/x86/entry/entry_64.S:412
NMI backtrace for cpu 1
CPU: 1 PID: 2773 Comm: syz-fuzzer Tainted: G L 4.17.0-rc1+ #34
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014
Call Trace:
<IRQ>
__dump_stack lib/dump_stack.c:77 [inline]
dump_stack+0x11b/0x1fd lib/dump_stack.c:113
nmi_cpu_backtrace.cold.2+0x19/0x5d lib/nmi_backtrace.c:103
</IRQ>
0-...!: (1 GPs behind) idle=1a6/1/4611686018427387906 softirq=37557/37559 fqs=53
(detected by 0, t=232 jiffies, g=6527, c=6526, q=315)
NMI backtrace for cpu 0
CPU: 0 PID: 2765 Comm: syz-fuzzer Tainted: G L 4.17.0-rc1+ #34
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014
Call Trace:
<IRQ>
__dump_stack lib/dump_stack.c:77 [inline]
dump_stack+0x11b/0x1fd lib/dump_stack.c:113
nmi_cpu_backtrace.cold.2+0x19/0x5d lib/nmi_backtrace.c:103
</IRQ>
I'll update a post later...
End
smp_call_function_many - soft lockup
Got from syzkaller & Found in LK v4.17.0-rc1.
Call Trace (Dump)
watchdog: BUG: soft lockup - CPU#1 stuck for 21s! [syz-fuzzer:2758]
Modules linked in:
irq event stamp: 937580
hardirqs last enabled at (937579): [<ffffffff87000a60>] restore_regs_and_return_to_kernel+0x0/0x30
hardirqs last disabled at (937580): [<ffffffff87000964>] interrupt_entry+0xc4/0xe0 arch/x86/entry/entry_64.S:625
softirqs last enabled at (891764): [<ffffffff872006f6>] __do_softirq+0x6f6/0xa8b kernel/softirq.c:311
softirqs last disabled at (891755): [<ffffffff845539fb>] invoke_softirq kernel/softirq.c:365 [inline]
softirqs last disabled at (891755): [<ffffffff845539fb>] irq_exit+0x19b/0x1c0 kernel/softirq.c:405
CPU: 1 PID: 2758 Comm: syz-fuzzer Not tainted 4.17.0-rc1+ #34
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014
RIP: 0010:rep_nop arch/x86/include/asm/processor.h:667 [inline]
RIP: 0010:cpu_relax arch/x86/include/asm/processor.h:672 [inline]
RIP: 0010:csd_lock_wait kernel/smp.c:108 [inline]
RIP: 0010:smp_call_function_single+0x3b8/0x510 kernel/smp.c:302
RSP: 0000:ffff88006652e9c0 EFLAGS: 00000293 ORIG_RAX: ffffffffffffff13
RAX: ffff88006bffc540 RBX: ffff88006652ea38 RCX: ffffffff8477e0e6
RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff88006652ea38
RBP: ffff88006652eb20 R08: ffffed000da05791 R09: ffff88006bffcdb8
R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000001
R13: dffffc0000000000 R14: 0000000000000000 R15: ffffed000cca5d54
FS: 000000c42023dc68(0000) GS:ffff88006d100000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007f6ca68cd650 CR3: 0000000060ed6000 CR4: 00000000000006e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
smp_call_function_many+0x6b0/0x820 kernel/smp.c:434
native_flush_tlb_others+0xec/0x620 arch/x86/mm/tlb.c:595
flush_tlb_others arch/x86/include/asm/paravirt.h:309 [inline]
flush_tlb_mm_range+0x255/0x400 arch/x86/mm/tlb.c:644
flush_tlb_page arch/x86/include/asm/tlbflush.h:526 [inline]
ptep_clear_flush+0x1a8/0x1f0 mm/pgtable-generic.c:87
wp_page_copy+0x97e/0x1c40 mm/memory.c:2527
do_wp_page+0x46c/0x2240 mm/memory.c:2776
handle_pte_fault mm/memory.c:3979 [inline]
__handle_mm_fault+0x1b21/0x32f0 mm/memory.c:4087
handle_mm_fault+0x12e/0x390 mm/memory.c:4124
__do_page_fault+0x517/0xb70 arch/x86/mm/fault.c:1399
do_page_fault+0xc1/0x610 arch/x86/mm/fault.c:1474
async_page_fault+0x1e/0x30 arch/x86/entry/entry_64.S:1163
RIP: 0033:0x41cfa7
RSP: 002b:000000c4201d3cb0 EFLAGS: 00010246
RAX: 000000c420016000 RBX: 0000000000000000 RCX: 0000000000000000
RDX: 00007f6ca68dd4c0 RSI: 0000000000000000 RDI: 00007f6ca68cd650
RBP: 000000c4201d3cd0 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000001 R11: 0000000000000286 R12: 00000000000000ff
R13: 0000000000000020 R14: 00007f6ca68d9000 R15: 0000000000000010
Code: 00 00 fc ff df 44 89 bc 24 e0 00 00 00 48 c1 e8 03 4c 01 e8 41 83 e7 01 c6 00 f8 74 53 49 89 c7 48 83 c3 18 e8 7a a6 0a 00 f3 90 <48> 89 da 41 c6 07 04 48 c1 ea 03 42 0f b6 14 2a 84 d2 74 09 80
watchdog: BUG: soft lockup - CPU#0 stuck for 37s! [kworker/0:1:24]
Modules linked in:
irq event stamp: 18446
hardirqs last enabled at (18445): [<ffffffff86f2d7a6>] __raw_spin_unlock_irqrestore include/linux/spinlock_api_smp.h:160 [inline]
hardirqs last enabled at (18445): [<ffffffff86f2d7a6>] _raw_spin_unlock_irqrestore+0x46/0x60 kernel/locking/spinlock.c:184
hardirqs last disabled at (18446): [<ffffffff87000964>] interrupt_entry+0xc4/0xe0 arch/x86/entry/entry_64.S:625
softirqs last enabled at (18432): [<ffffffff8644cc31>] neigh_periodic_work+0x6b1/0xa90 net/core/neighbour.c:862
softirqs last disabled at (18428): [<ffffffff8644c65b>] neigh_periodic_work+0xdb/0xa90 net/core/neighbour.c:794
CPU: 0 PID: 24 Comm: kworker/0:1 Tainted: G L 4.17.0-rc1+ #34
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014
Workqueue: events e1000_watchdog
RIP: 0010:arch_local_irq_restore arch/x86/include/asm/paravirt.h:783 [inline]
RIP: 0010:__raw_spin_unlock_irqrestore include/linux/spinlock_api_smp.h:160 [inline]
RIP: 0010:_raw_spin_unlock_irqrestore+0x4b/0x60 kernel/locking/spinlock.c:184
RSP: 0018:ffff88006c14f4c0 EFLAGS: 00000293 ORIG_RAX: ffffffffffffff13
RAX: 0000000000000007 RBX: 0000000000000293 RCX: 0000000000000000
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000293
RBP: ffff880066e8ade0 R08: ffffed000cdd15bd R09: ffff88006c0736b8
R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
R13: ffff880066e8abc0 R14: ffff880066e8afb8 R15: ffff880066e8a180
FS: 0000000000000000(0000) GS:ffff88006d000000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 000000c42d98e000 CR3: 00000000614ac000 CR4: 00000000000006f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
spin_unlock_irqrestore include/linux/spinlock.h:365 [inline]
e1000_update_stats+0x13ed/0x1d60 drivers/net/ethernet/intel/e1000/e1000_main.c:3768
e1000_watchdog+0x335/0x11a0 drivers/net/ethernet/intel/e1000/e1000_main.c:2521
Code: 51 76 fd f6 c7 02 75 19 48 89 df 57 9d 0f 1f 44 00 00 e8 19 5d 74 fd 65 ff 0d 72 06 0f 79 5b 5d c3 e8 ea e8 74 fd 48 89 df 57 9d <0f> 1f 44 00 00 eb e5 0f 1f 40 00 66 2e 0f 1f 84 00 00 00 00 00
I'll update a post later...
End