[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <68478027.050a0220.33aa0e.02e7.GAE@google.com>
Date: Mon, 09 Jun 2025 17:45:27 -0700
From: syzbot <syzbot+eb6f218811a9d721fd53@...kaller.appspotmail.com>
To: andrew+netdev@...n.ch, andrew@...n.ch, davem@...emloft.net,
edumazet@...gle.com, kuba@...nel.org, linux-kernel@...r.kernel.org,
netdev@...r.kernel.org, pabeni@...hat.com, richardcochran@...il.com,
syzkaller-bugs@...glegroups.com
Subject: Re: [syzbot] [net?] possible deadlock in ptp_clock_unregister
syzbot has found a reproducer for the following issue on:
HEAD commit: 19272b37aa4f Linux 6.16-rc1
git tree: upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=13bc5a0c580000
kernel config: https://syzkaller.appspot.com/x/.config?x=c4c8362784bb7796
dashboard link: https://syzkaller.appspot.com/bug?extid=eb6f218811a9d721fd53
compiler: gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=15848d70580000
C reproducer: https://syzkaller.appspot.com/x/repro.c?x=17bc5a0c580000
Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/0ceded60de88/disk-19272b37.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/51f4990c81f8/vmlinux-19272b37.xz
kernel image: https://storage.googleapis.com/syzbot-assets/7addf73549b9/bzImage-19272b37.xz
IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+eb6f218811a9d721fd53@...kaller.appspotmail.com
ptp ptp0: delete virtual clock ptp15
============================================
WARNING: possible recursive locking detected
6.16.0-rc1-syzkaller #0 Not tainted
--------------------------------------------
syz-executor421/5891 is trying to acquire lock:
ffff888079fcc868 (&ptp->n_vclocks_mux){+.+.}-{4:4}, at: ptp_vclock_in_use drivers/ptp/ptp_private.h:103 [inline]
ffff888079fcc868 (&ptp->n_vclocks_mux){+.+.}-{4:4}, at: ptp_clock_unregister+0x21/0x250 drivers/ptp/ptp_clock.c:415
but task is already holding lock:
ffff8880300cc868 (&ptp->n_vclocks_mux){+.+.}-{4:4}, at: n_vclocks_store+0xf1/0x6d0 drivers/ptp/ptp_sysfs.c:215
other info that might help us debug this:
Possible unsafe locking scenario:
CPU0
----
lock(&ptp->n_vclocks_mux);
lock(&ptp->n_vclocks_mux);
*** DEADLOCK ***
May be due to missing lock nesting notation
4 locks held by syz-executor421/5891:
#0: ffff88803631c428 (sb_writers#7){.+.+}-{0:0}, at: ksys_write+0x12a/0x250 fs/read_write.c:738
#1: ffff888031c2c488 (&of->mutex){+.+.}-{4:4}, at: kernfs_fop_write_iter+0x28f/0x510 fs/kernfs/file.c:325
#2: ffff8880303d4878 (kn->active#57){.+.+}-{0:0}, at: kernfs_fop_write_iter+0x2b2/0x510 fs/kernfs/file.c:326
#3: ffff8880300cc868 (&ptp->n_vclocks_mux){+.+.}-{4:4}, at: n_vclocks_store+0xf1/0x6d0 drivers/ptp/ptp_sysfs.c:215
stack backtrace:
CPU: 1 UID: 0 PID: 5891 Comm: syz-executor421 Not tainted 6.16.0-rc1-syzkaller #0 PREEMPT(full)
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 05/07/2025
Call Trace:
<TASK>
__dump_stack lib/dump_stack.c:94 [inline]
dump_stack_lvl+0x116/0x1f0 lib/dump_stack.c:120
print_deadlock_bug+0x1e9/0x240 kernel/locking/lockdep.c:3044
check_deadlock kernel/locking/lockdep.c:3096 [inline]
validate_chain kernel/locking/lockdep.c:3898 [inline]
__lock_acquire+0x1106/0x1c90 kernel/locking/lockdep.c:5240
lock_acquire kernel/locking/lockdep.c:5871 [inline]
lock_acquire+0x179/0x350 kernel/locking/lockdep.c:5828
__mutex_lock_common kernel/locking/mutex.c:602 [inline]
__mutex_lock+0x199/0xb90 kernel/locking/mutex.c:747
ptp_vclock_in_use drivers/ptp/ptp_private.h:103 [inline]
ptp_clock_unregister+0x21/0x250 drivers/ptp/ptp_clock.c:415
ptp_vclock_unregister+0x11a/0x160 drivers/ptp/ptp_vclock.c:228
unregister_vclock+0x108/0x1a0 drivers/ptp/ptp_sysfs.c:177
device_for_each_child_reverse+0x136/0x1a0 drivers/base/core.c:4051
n_vclocks_store+0x4b6/0x6d0 drivers/ptp/ptp_sysfs.c:241
dev_attr_store+0x58/0x80 drivers/base/core.c:2440
sysfs_kf_write+0xf2/0x150 fs/sysfs/file.c:145
kernfs_fop_write_iter+0x351/0x510 fs/kernfs/file.c:334
new_sync_write fs/read_write.c:593 [inline]
vfs_write+0x6c4/0x1150 fs/read_write.c:686
ksys_write+0x12a/0x250 fs/read_write.c:738
do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
do_syscall_64+0xcd/0x490 arch/x86/entry/syscall_64.c:94
entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f577c6b6f29
Code: 28 00 00 00 75 05 48 83 c4 28 c3 e8 e1 1d 00 00 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 73 01 c3 48 c7 c1 b0 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007ffefa44cc98 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
RAX: ffffffffffffffda RBX: 0000000000000003 RCX: 00007f577c6b6f29
RDX: 00000000000005c8 RSI: 0000000000000000 RDI: 0000000000000003
RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 00007ffefa44ccdc
R13: 00007ffefa44ccf0 R14: 00007ffefa44cd30 R15: 0000000000000004
</TASK>
ptp ptp0: guarantee physical clock free running
---
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.
Powered by blists - more mailing lists