On 8/4/25 9:50 AM, syzbot wrote:
Hello,

syzbot found the following issue on:

HEAD commit:    84b92a499e7e Add linux-next specific files for 20250731
git tree:       linux-next
console output: https://syzkaller.appspot.com/x/log.txt?x=11065aa2580000
kernel config:  https://syzkaller.appspot.com/x/.config?x=b335f01a07f73eac
dashboard link: https://syzkaller.appspot.com/bug?extid=c3740bc819eb55460ec3
compiler:       Debian clang version 20.1.7 
(++20250616065708+6146a88f6049-1~exp1~20250616065826.132), Debian LLD 20.1.7
syz repro:      https://syzkaller.appspot.com/x/repro.syz?x=14167834580000
C reproducer:   https://syzkaller.appspot.com/x/repro.c?x=16f27cf0580000

Downloadable assets:
disk image: 
https://storage.googleapis.com/syzbot-assets/97d9ce461c85/disk-84b92a49.raw.xz
vmlinux: 
https://storage.googleapis.com/syzbot-assets/0ca812ed76e7/vmlinux-84b92a49.xz
kernel image: 
https://storage.googleapis.com/syzbot-assets/0959d28a047f/bzImage-84b92a49.xz

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

FAULT_INJECTION: forcing a failure.
name fail_usercopy, interval 1, probability 0, space 0, times 0
============================================
WARNING: possible recursive locking detected
6.16.0-next-20250731-syzkaller #0 Not tainted
--------------------------------------------
syz.3.22/6137 is trying to acquire lock:
ffffffff8e12e278 ((console_sem).lock){-...}-{2:2}, at: down_trylock+0x20/0xb0 
kernel/locking/semaphore.c:176

but task is already holding lock:
ffffffff8e12e278 ((console_sem).lock){-...}-{2:2}, at: down+0x39/0xd0 
kernel/locking/semaphore.c:96

There is a similar discussion in the following old thread:
   
https://lore.kernel.org/bpf/345098dc-8cb4-4808-98cf-fa9ab3af4...@i-love.sakura.ne.jp/

In that case, the recursive lock is rq lock. Looks like there is no good 
solution for
that thread.

Not sure how this semaphore deadlock could be resolved.


other info that might help us debug this:
  Possible unsafe locking scenario:

        CPU0
        ----
   lock((console_sem).lock);
   lock((console_sem).lock);

  *** DEADLOCK ***

  May be due to missing lock nesting notation

2 locks held by syz.3.22/6137:
  #0: ffffffff8e12e278 ((console_sem).lock){-...}-{2:2}, at: down+0x39/0xd0 
kernel/locking/semaphore.c:96
  #1: ffffffff8e139f20 (rcu_read_lock){....}-{1:3}, at: rcu_lock_acquire 
include/linux/rcupdate.h:331 [inline]
  #1: ffffffff8e139f20 (rcu_read_lock){....}-{1:3}, at: rcu_read_lock 
include/linux/rcupdate.h:841 [inline]
  #1: ffffffff8e139f20 (rcu_read_lock){....}-{1:3}, at: __bpf_trace_run 
kernel/trace/bpf_trace.c:2256 [inline]
  #1: ffffffff8e139f20 (rcu_read_lock){....}-{1:3}, at: 
bpf_trace_run2+0x186/0x4b0 kernel/trace/bpf_trace.c:2298

stack backtrace:
CPU: 0 UID: 0 PID: 6137 Comm: syz.3.22 Not tainted 
6.16.0-next-20250731-syzkaller #0 PREEMPT(full)
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 
07/12/2025
Call Trace:
  <TASK>
  dump_stack_lvl+0x189/0x250 lib/dump_stack.c:120
  print_deadlock_bug+0x28b/0x2a0 kernel/locking/lockdep.c:3041
  check_deadlock kernel/locking/lockdep.c:3093 [inline]
  validate_chain+0x1a3f/0x2140 kernel/locking/lockdep.c:3895
  __lock_acquire+0xab9/0xd20 kernel/locking/lockdep.c:5237
  lock_acquire+0x120/0x360 kernel/locking/lockdep.c:5868
  __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline]
  _raw_spin_lock_irqsave+0xa7/0xf0 kernel/locking/spinlock.c:162
  down_trylock+0x20/0xb0 kernel/locking/semaphore.c:176
  __down_trylock_console_sem+0xd0/0x1e0 kernel/printk/printk.c:326
  console_trylock kernel/printk/printk.c:2868 [inline]
  console_trylock_spinning kernel/printk/printk.c:2009 [inline]
  vprintk_emit+0x320/0x7a0 kernel/printk/printk.c:2449
  _printk+0xcf/0x120 kernel/printk/printk.c:2475
  fail_dump lib/fault-inject.c:66 [inline]
  should_fail_ex+0x3f5/0x560 lib/fault-inject.c:174
  strncpy_from_user+0x36/0x290 lib/strncpy_from_user.c:118
  strncpy_from_user_nofault+0x72/0x150 mm/maccess.c:192
  bpf_trace_copy_string kernel/bpf/helpers.c:755 [inline]
  bpf_bprintf_prepare+0xbbc/0x13d0 kernel/bpf/helpers.c:976
  ____bpf_trace_printk kernel/trace/bpf_trace.c:373 [inline]
  bpf_trace_printk+0xdb/0x190 kernel/trace/bpf_trace.c:363
  bpf_prog_7c77c7e0f6645ad8+0x3e/0x44
  bpf_dispatcher_nop_func include/linux/bpf.h:1322 [inline]
  __bpf_prog_run include/linux/filter.h:718 [inline]
  bpf_prog_run include/linux/filter.h:725 [inline]
  __bpf_trace_run kernel/trace/bpf_trace.c:2257 [inline]
  bpf_trace_run2+0x284/0x4b0 kernel/trace/bpf_trace.c:2298
  __bpf_trace_contention_begin+0xdc/0x130 include/trace/events/lock.h:95
  __do_trace_contention_begin include/trace/events/lock.h:95 [inline]
  trace_contention_begin include/trace/events/lock.h:95 [inline]
  __down_common+0x5ad/0x6a0 kernel/locking/semaphore.c:292
  down+0x80/0xd0 kernel/locking/semaphore.c:100
  console_lock+0x145/0x1b0 kernel/printk/printk.c:2849
  do_fb_ioctl+0x509/0x750 drivers/video/fbdev/core/fb_chrdev.c:123
  vfs_ioctl fs/ioctl.c:51 [inline]
  __do_sys_ioctl fs/ioctl.c:598 [inline]
  __se_sys_ioctl+0xf9/0x170 fs/ioctl.c:584
  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
  do_syscall_64+0xfa/0x3b0 arch/x86/entry/syscall_64.c:94
  entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f92c678eb69
Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 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 73 01 c3 48 
c7 c1 a8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007ffda68c54f8 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
RAX: ffffffffffffffda RBX: 00007f92c69b5fa0 RCX: 00007f92c678eb69
RDX: 0000200000000080 RSI: 0000000000004606 RDI: 0000000000000005
RBP: 00007ffda68c5550 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000001
R13: 00007f92c69b5fa0 R14: 00007f92c69b5fa0 R15: 0000000000000003
  </TASK>


---
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 syzkal...@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 syzbot to run the reproducer, reply with:
#syz test: git://repo/address.git branch-or-commit-hash
If you attach or paste a git patch, syzbot will apply it before testing.

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


Reply via email to