[syzbot] [arm?] BUG: using __this_cpu_read() in preemptible code in __delay

1 view
Skip to first unread message

syzbot

unread,
10:05 AM (4 hours ago) 10:05 AM
to catalin...@arm.com, linux-ar...@lists.infradead.org, linux-...@vger.kernel.org, syzkall...@googlegroups.com, wi...@kernel.org
Hello,

syzbot found the following issue on:

HEAD commit: 32a92f8c8932 Convert more 'alloc_obj' cases to default GFP..
git tree: upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=1019fc02580000
kernel config: https://syzkaller.appspot.com/x/.config?x=b77d736d2f4fe1b1
dashboard link: https://syzkaller.appspot.com/bug?extid=b29d18a34746f34c94cc
compiler: aarch64-linux-gnu-gcc (Debian 14.2.0-19) 14.2.0, GNU ld (GNU Binutils for Debian) 2.44
userspace arch: arm64

Unfortunately, I don't have any reproducer for this issue yet.

Downloadable assets:
disk image (non-bootable): https://storage.googleapis.com/syzbot-assets/fa3fbcfdac58/non_bootable_disk-32a92f8c.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/aabf4d7d9d6a/vmlinux-32a92f8c.xz
kernel image: https://storage.googleapis.com/syzbot-assets/0367e274b699/Image-32a92f8c.gz.xz

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+b29d18...@syzkaller.appspotmail.com

BUG: using __this_cpu_read() in preemptible [00000000] code: syz.0.1012/5537
caller is __this_cpu_preempt_check+0x20/0x40 lib/smp_processor_id.c:64
CPU: 0 UID: 0 PID: 5537 Comm: syz.0.1012 Tainted: G L syzkaller #0 PREEMPT
Tainted: [L]=SOFTLOCKUP
Hardware name: linux,dummy-virt (DT)
Call trace:
show_stack+0x18/0x24 arch/arm64/kernel/stacktrace.c:499 (C)
__dump_stack lib/dump_stack.c:94 [inline]
dump_stack_lvl+0x7c/0xb0 lib/dump_stack.c:120
dump_stack+0x1c/0x28 lib/dump_stack.c:129
check_preemption_disabled+0xe0/0xe8 lib/smp_processor_id.c:47
__this_cpu_preempt_check+0x20/0x40 lib/smp_processor_id.c:64
__arch_counter_get_cntvct_stable arch/arm64/include/asm/arch_timer.h:195 [inline]
__delay+0x40/0x374 arch/arm64/lib/delay.c:39
__const_udelay+0x48/0x64 arch/arm64/lib/delay.c:66
udelay include/asm-generic/delay.h:62 [inline]
snd_timer_close_locked+0x258/0x94c sound/core/timer.c:443
snd_timer_close+0xa4/0x120 sound/core/timer.c:476
snd_seq_timer_close+0x88/0xd0 sound/core/seq/seq_timer.c:311
queue_delete+0x50/0xac sound/core/seq/seq_queue.c:126
snd_seq_queue_delete+0x2c/0x58 sound/core/seq/seq_queue.c:188
snd_seq_ioctl_delete_queue+0x6c/0xa0 sound/core/seq/seq_clientmgr.c:1546
call_seq_client_ctl+0x94/0x120 sound/core/seq/seq_clientmgr.c:2419
snd_seq_kernel_client_ctl+0x68/0x100 sound/core/seq/seq_clientmgr.c:2447
delete_seq_queue.isra.0+0xbc/0x124 sound/core/seq/oss/seq_oss_init.c:371
snd_seq_oss_release+0x13c/0x1a0 sound/core/seq/oss/seq_oss_init.c:416
odev_release+0x4c/0x88 sound/core/seq/oss/seq_oss.c:141
__fput+0x2d0/0x958 fs/file_table.c:469
____fput+0x14/0x20 fs/file_table.c:497
task_work_run+0x134/0x238 kernel/task_work.c:233
resume_user_mode_work include/linux/resume_user_mode.h:50 [inline]
__exit_to_user_mode_loop kernel/entry/common.c:67 [inline]
exit_to_user_mode_loop+0x194/0x1c8 kernel/entry/common.c:98
__exit_to_user_mode_prepare include/linux/irq-entry-common.h:226 [inline]
exit_to_user_mode_prepare_legacy include/linux/irq-entry-common.h:242 [inline]
arm64_exit_to_user_mode arch/arm64/kernel/entry-common.c:81 [inline]
el0_svc+0x258/0x29c arch/arm64/kernel/entry-common.c:725
el0t_64_sync_handler+0xa0/0xe4 arch/arm64/kernel/entry-common.c:743
el0t_64_sync+0x198/0x19c arch/arm64/kernel/entry.S:596
BUG: using __this_cpu_read() in preemptible [00000000] code: syz.0.1012/5537
caller is __this_cpu_preempt_check+0x20/0x40 lib/smp_processor_id.c:64
CPU: 0 UID: 0 PID: 5537 Comm: syz.0.1012 Tainted: G L syzkaller #0 PREEMPT
Tainted: [L]=SOFTLOCKUP
Hardware name: linux,dummy-virt (DT)
Call trace:
show_stack+0x18/0x24 arch/arm64/kernel/stacktrace.c:499 (C)
__dump_stack lib/dump_stack.c:94 [inline]
dump_stack_lvl+0x7c/0xb0 lib/dump_stack.c:120
dump_stack+0x1c/0x28 lib/dump_stack.c:129
check_preemption_disabled+0xe0/0xe8 lib/smp_processor_id.c:47
__this_cpu_preempt_check+0x20/0x40 lib/smp_processor_id.c:64
__arch_counter_get_cntvct_stable arch/arm64/include/asm/arch_timer.h:195 [inline]
__delay+0x10c/0x374 arch/arm64/lib/delay.c:55
__const_udelay+0x48/0x64 arch/arm64/lib/delay.c:66
udelay include/asm-generic/delay.h:62 [inline]
snd_timer_close_locked+0x258/0x94c sound/core/timer.c:443
snd_timer_close+0xa4/0x120 sound/core/timer.c:476
snd_seq_timer_close+0x88/0xd0 sound/core/seq/seq_timer.c:311
queue_delete+0x50/0xac sound/core/seq/seq_queue.c:126
snd_seq_queue_delete+0x2c/0x58 sound/core/seq/seq_queue.c:188
snd_seq_ioctl_delete_queue+0x6c/0xa0 sound/core/seq/seq_clientmgr.c:1546
call_seq_client_ctl+0x94/0x120 sound/core/seq/seq_clientmgr.c:2419
snd_seq_kernel_client_ctl+0x68/0x100 sound/core/seq/seq_clientmgr.c:2447
delete_seq_queue.isra.0+0xbc/0x124 sound/core/seq/oss/seq_oss_init.c:371
snd_seq_oss_release+0x13c/0x1a0 sound/core/seq/oss/seq_oss_init.c:416
odev_release+0x4c/0x88 sound/core/seq/oss/seq_oss.c:141
__fput+0x2d0/0x958 fs/file_table.c:469
____fput+0x14/0x20 fs/file_table.c:497
task_work_run+0x134/0x238 kernel/task_work.c:233
resume_user_mode_work include/linux/resume_user_mode.h:50 [inline]
__exit_to_user_mode_loop kernel/entry/common.c:67 [inline]
exit_to_user_mode_loop+0x194/0x1c8 kernel/entry/common.c:98
__exit_to_user_mode_prepare include/linux/irq-entry-common.h:226 [inline]
exit_to_user_mode_prepare_legacy include/linux/irq-entry-common.h:242 [inline]
arm64_exit_to_user_mode arch/arm64/kernel/entry-common.c:81 [inline]
el0_svc+0x258/0x29c arch/arm64/kernel/entry-common.c:725
el0t_64_sync_handler+0xa0/0xe4 arch/arm64/kernel/entry-common.c:743
el0t_64_sync+0x198/0x19c arch/arm64/kernel/entry.S:596
BUG: using __this_cpu_read() in preemptible [00000000] code: syz.0.1012/5537
caller is __this_cpu_preempt_check+0x20/0x40 lib/smp_processor_id.c:64
CPU: 0 UID: 0 PID: 5537 Comm: syz.0.1012 Tainted: G L syzkaller #0 PREEMPT
Tainted: [L]=SOFTLOCKUP
Hardware name: linux,dummy-virt (DT)
Call trace:
show_stack+0x18/0x24 arch/arm64/kernel/stacktrace.c:499 (C)
__dump_stack lib/dump_stack.c:94 [inline]
dump_stack_lvl+0x7c/0xb0 lib/dump_stack.c:120
dump_stack+0x1c/0x28 lib/dump_stack.c:129
check_preemption_disabled+0xe0/0xe8 lib/smp_processor_id.c:47
__this_cpu_preempt_check+0x20/0x40 lib/smp_processor_id.c:64
__arch_counter_get_cntvct_stable arch/arm64/include/asm/arch_timer.h:195 [inline]
__delay+0x19c/0x374 arch/arm64/lib/delay.c:59
__const_udelay+0x48/0x64 arch/arm64/lib/delay.c:66
udelay include/asm-generic/delay.h:62 [inline]
snd_timer_close_locked+0x258/0x94c sound/core/timer.c:443
snd_timer_close+0xa4/0x120 sound/core/timer.c:476
snd_seq_timer_close+0x88/0xd0 sound/core/seq/seq_timer.c:311
queue_delete+0x50/0xac sound/core/seq/seq_queue.c:126
snd_seq_queue_delete+0x2c/0x58 sound/core/seq/seq_queue.c:188
snd_seq_ioctl_delete_queue+0x6c/0xa0 sound/core/seq/seq_clientmgr.c:1546
call_seq_client_ctl+0x94/0x120 sound/core/seq/seq_clientmgr.c:2419
snd_seq_kernel_client_ctl+0x68/0x100 sound/core/seq/seq_clientmgr.c:2447
delete_seq_queue.isra.0+0xbc/0x124 sound/core/seq/oss/seq_oss_init.c:371
snd_seq_oss_release+0x13c/0x1a0 sound/core/seq/oss/seq_oss_init.c:416
odev_release+0x4c/0x88 sound/core/seq/oss/seq_oss.c:141
__fput+0x2d0/0x958 fs/file_table.c:469
____fput+0x14/0x20 fs/file_table.c:497
task_work_run+0x134/0x238 kernel/task_work.c:233
resume_user_mode_work include/linux/resume_user_mode.h:50 [inline]
__exit_to_user_mode_loop kernel/entry/common.c:67 [inline]
exit_to_user_mode_loop+0x194/0x1c8 kernel/entry/common.c:98
__exit_to_user_mode_prepare include/linux/irq-entry-common.h:226 [inline]
exit_to_user_mode_prepare_legacy include/linux/irq-entry-common.h:242 [inline]
arm64_exit_to_user_mode arch/arm64/kernel/entry-common.c:81 [inline]
el0_svc+0x258/0x29c arch/arm64/kernel/entry-common.c:725
el0t_64_sync_handler+0xa0/0xe4 arch/arm64/kernel/entry-common.c:743
el0t_64_sync+0x198/0x19c arch/arm64/kernel/entry.S:596


---
This report is generated by a bot. It may contain errors.
See https://goo.gl/tpsmEJ for more information about syzbot.
syzbot engineers can be reached at syzk...@googlegroups.com.

syzbot will keep track of this issue. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.

If the report is already addressed, let syzbot know by replying with:
#syz fix: exact-commit-title

If you want to overwrite report's subsystems, reply with:
#syz set subsystems: new-subsystem
(See the list of subsystem names on the web dashboard)

If the report is a duplicate of another one, reply with:
#syz dup: exact-subject-of-another-report

If you want to undo deduplication, reply with:
#syz undup

Will Deacon

unread,
1:25 PM (19 minutes ago) 1:25 PM
to syzbot, catalin...@arm.com, linux-ar...@lists.infradead.org, linux-...@vger.kernel.org, syzkall...@googlegroups.com, m...@kernel.org
This should be fixed by the first patch in this series:

https://lore.kernel.org/r/2026022608223...@kernel.org

I'll queue that today.

Will

#syz fix: arm64: Fix sampling the "stable" virtual counter in preemptible section
Reply all
Reply to author
Forward
0 new messages