=====================================================
WARNING: HARDIRQ-safe -> HARDIRQ-unsafe lock order detected
6.10.0-rc3-syzkaller-00022-gcea2a26553ac #0 Not tainted
-----------------------------------------------------
kworker/u8:12/6237 [HC0[0]:SC0[0]:HE0:SE1] is trying to acquire:
ffffffff8ec3f2d8 (disc_data_lock#3){.+.+}-{2:2}, at: sp_get+0x18/0xf0 drivers/net/hamradio/6pack.c:376
and this task is already holding:
ffffffff94de0f78 (&port_lock_key){-.-.}-{2:2}, at: uart_port_lock_irqsave include/linux/serial_core.h:618 [inline]
ffffffff94de0f78 (&port_lock_key){-.-.}-{2:2}, at: uart_write+0x134/0x3e0 drivers/tty/serial/serial_core.c:624
which would create a new lock dependency:
(&port_lock_key){-.-.}-{2:2} -> (disc_data_lock#3){.+.+}-{2:2}
but this new dependency connects a HARDIRQ-irq-safe lock:
(&port_lock_key){-.-.}-{2:2}
... which became HARDIRQ-irq-safe at:
lock_acquire kernel/locking/lockdep.c:5754 [inline]
lock_acquire+0x1b1/0x560 kernel/locking/lockdep.c:5719
__raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline]
_raw_spin_lock_irqsave+0x3a/0x60 kernel/locking/spinlock.c:162
uart_port_lock_irqsave include/linux/serial_core.h:618 [inline]
serial8250_console_write+0xaa6/0x1090 drivers/tty/serial/8250/8250_port.c:3352
console_emit_next_record kernel/printk/printk.c:2928 [inline]
console_flush_all+0x53c/0xd70 kernel/printk/printk.c:2994
console_unlock+0xae/0x290 kernel/printk/printk.c:3063
vprintk_emit kernel/printk/printk.c:2345 [inline]
vprintk_emit+0x11a/0x5a0 kernel/printk/printk.c:2300
vprintk+0x7f/0xa0 kernel/printk/printk_safe.c:45
_printk+0xc8/0x100 kernel/printk/printk.c:2370
vkms_vblank_simulate+0xd4/0x3e0 drivers/gpu/drm/vkms/vkms_crtc.c:26
__run_hrtimer kernel/time/hrtimer.c:1687 [inline]
__hrtimer_run_queues+0x20c/0xcc0 kernel/time/hrtimer.c:1751
hrtimer_interrupt+0x31b/0x800 kernel/time/hrtimer.c:1813
local_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1032 [inline]
__sysvec_apic_timer_interrupt+0x10f/0x450 arch/x86/kernel/apic/apic.c:1049
instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1043 [inline]
sysvec_apic_timer_interrupt+0x43/0xb0 arch/x86/kernel/apic/apic.c:1043
asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:702
lock_acquire+0x1f2/0x560 kernel/locking/lockdep.c:5722
rcu_lock_acquire include/linux/rcupdate.h:329 [inline]
rcu_do_batch kernel/rcu/tree.c:2529 [inline]
rcu_core+0x7e0/0x16b0 kernel/rcu/tree.c:2809
handle_softirqs+0x216/0x8f0 kernel/softirq.c:554
__do_softirq kernel/softirq.c:588 [inline]
invoke_softirq kernel/softirq.c:428 [inline]
__irq_exit_rcu kernel/softirq.c:637 [inline]
irq_exit_rcu+0xbb/0x120 kernel/softirq.c:649
instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1043 [inline]
sysvec_apic_timer_interrupt+0x95/0xb0 arch/x86/kernel/apic/apic.c:1043
asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:702
__raw_spin_unlock_irqrestore include/linux/spinlock_api_smp.h:151 [inline]
_raw_spin_unlock_irqrestore+0x31/0x80 kernel/locking/spinlock.c:194
spin_unlock_irqrestore include/linux/spinlock.h:406 [inline]
ida_alloc_range+0x417/0x830 lib/idr.c:453
ida_alloc include/linux/idr.h:275 [inline]
blk_alloc_queue+0x8e/0x760 block/blk-core.c:409
blk_mq_alloc_queue+0xc7/0x1a0 block/blk-mq.c:4124
scsi_alloc_sdev+0x881/0xd90 drivers/scsi/scsi_scan.c:337
scsi_probe_and_add_lun+0x789/0xda0 drivers/scsi/scsi_scan.c:1211
__scsi_scan_target+0x1ea/0x580 drivers/scsi/scsi_scan.c:1758
scsi_scan_channel drivers/scsi/scsi_scan.c:1846 [inline]
scsi_scan_channel+0x149/0x1e0 drivers/scsi/scsi_scan.c:1822
scsi_scan_host_selected+0x302/0x400 drivers/scsi/scsi_scan.c:1875
do_scsi_scan_host+0x1ef/0x260 drivers/scsi/scsi_scan.c:2014
do_scan_async+0x44/0x540 drivers/scsi/scsi_scan.c:2024
async_run_entry_fn+0x9c/0x530 kernel/async.c:129
process_one_work+0x9fb/0x1b60 kernel/workqueue.c:3231
process_scheduled_works kernel/workqueue.c:3312 [inline]
worker_thread+0x6c8/0xf70 kernel/workqueue.c:3393
kthread+0x2c1/0x3a0 kernel/kthread.c:389
ret_from_fork+0x45/0x80 arch/x86/kernel/process.c:147
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244
to a HARDIRQ-irq-unsafe lock:
(disc_data_lock#3){.+.+}-{2:2}
... which became HARDIRQ-irq-unsafe at:
...
lock_acquire kernel/locking/lockdep.c:5754 [inline]
lock_acquire+0x1b1/0x560 kernel/locking/lockdep.c:5719
__raw_read_lock include/linux/rwlock_api_smp.h:150 [inline]
_raw_read_lock+0x5f/0x70 kernel/locking/spinlock.c:228
sp_get+0x18/0xf0 drivers/net/hamradio/6pack.c:376
sixpack_receive_buf drivers/net/hamradio/6pack.c:439 [inline]
sixpack_receive_buf+0x59/0x1c90 drivers/net/hamradio/6pack.c:430
tty_ldisc_receive_buf+0x153/0x190 drivers/tty/tty_buffer.c:391
tty_port_default_receive_buf+0x70/0xb0 drivers/tty/tty_port.c:37
receive_buf drivers/tty/tty_buffer.c:445 [inline]
flush_to_ldisc+0x264/0x780 drivers/tty/tty_buffer.c:495
process_one_work+0x9fb/0x1b60 kernel/workqueue.c:3231
process_scheduled_works kernel/workqueue.c:3312 [inline]
worker_thread+0x6c8/0xf70 kernel/workqueue.c:3393
kthread+0x2c1/0x3a0 kernel/kthread.c:389
ret_from_fork+0x45/0x80 arch/x86/kernel/process.c:147
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244
other info that might help us debug this:
Possible interrupt unsafe locking scenario:
CPU0 CPU1
---- ----
lock(disc_data_lock#3);
local_irq_disable();
lock(&port_lock_key);
lock(disc_data_lock#3);
<Interrupt>
lock(&port_lock_key);
*** DEADLOCK ***
6 locks held by kworker/u8:12/6237:
#0: ffff888015489148 ((wq_completion)events_unbound){+.+.}-{0:0}, at: process_one_work+0x12bf/0x1b60 kernel/workqueue.c:3206
#1: ffffc90003347d80 ((work_completion)(&buf->work)){+.+.}-{0:0}, at: process_one_work+0x957/0x1b60 kernel/workqueue.c:3207
#2: ffff88801fad0ca0 (&buf->lock){+.+.}-{3:3}, at: flush_to_ldisc+0x31/0x780 drivers/tty/tty_buffer.c:467
#3: ffff88805e9fb0a0 (&tty->ldisc_sem){++++}-{0:0}, at: tty_ldisc_ref+0x1c/0x80 drivers/tty/tty_ldisc.c:263
#4: ffffffff94de0f78 (&port_lock_key){-.-.}-{2:2}, at: uart_port_lock_irqsave include/linux/serial_core.h:618 [inline]
#4: ffffffff94de0f78 (&port_lock_key){-.-.}-{2:2}, at: uart_write+0x134/0x3e0 drivers/tty/serial/serial_core.c:624
#5: ffff88805e9fb0a0 (&tty->ldisc_sem){++++}-{0:0}, at: tty_ldisc_ref+0x1c/0x80 drivers/tty/tty_ldisc.c:263
the dependencies between HARDIRQ-irq-safe lock and the holding lock:
-> (&port_lock_key){-.-.}-{2:2} {
IN-HARDIRQ-W at:
lock_acquire kernel/locking/lockdep.c:5754 [inline]
lock_acquire+0x1b1/0x560 kernel/locking/lockdep.c:5719
__raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline]
_raw_spin_lock_irqsave+0x3a/0x60 kernel/locking/spinlock.c:162
uart_port_lock_irqsave include/linux/serial_core.h:618 [inline]
serial8250_console_write+0xaa6/0x1090 drivers/tty/serial/8250/8250_port.c:3352
console_emit_next_record kernel/printk/printk.c:2928 [inline]
console_flush_all+0x53c/0xd70 kernel/printk/printk.c:2994
console_unlock+0xae/0x290 kernel/printk/printk.c:3063
vprintk_emit kernel/printk/printk.c:2345 [inline]
vprintk_emit+0x11a/0x5a0 kernel/printk/printk.c:2300
vprintk+0x7f/0xa0 kernel/printk/printk_safe.c:45
_printk+0xc8/0x100 kernel/printk/printk.c:2370
vkms_vblank_simulate+0xd4/0x3e0 drivers/gpu/drm/vkms/vkms_crtc.c:26
__run_hrtimer kernel/time/hrtimer.c:1687 [inline]
__hrtimer_run_queues+0x20c/0xcc0 kernel/time/hrtimer.c:1751
hrtimer_interrupt+0x31b/0x800 kernel/time/hrtimer.c:1813
local_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1032 [inline]
__sysvec_apic_timer_interrupt+0x10f/0x450 arch/x86/kernel/apic/apic.c:1049
instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1043 [inline]
sysvec_apic_timer_interrupt+0x43/0xb0 arch/x86/kernel/apic/apic.c:1043
asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:702
lock_acquire+0x1f2/0x560 kernel/locking/lockdep.c:5722
rcu_lock_acquire include/linux/rcupdate.h:329 [inline]
rcu_do_batch kernel/rcu/tree.c:2529 [inline]
rcu_core+0x7e0/0x16b0 kernel/rcu/tree.c:2809
handle_softirqs+0x216/0x8f0 kernel/softirq.c:554
__do_softirq kernel/softirq.c:588 [inline]
invoke_softirq kernel/softirq.c:428 [inline]
__irq_exit_rcu kernel/softirq.c:637 [inline]
irq_exit_rcu+0xbb/0x120 kernel/softirq.c:649
instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1043 [inline]
sysvec_apic_timer_interrupt+0x95/0xb0 arch/x86/kernel/apic/apic.c:1043
asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:702
__raw_spin_unlock_irqrestore include/linux/spinlock_api_smp.h:151 [inline]
_raw_spin_unlock_irqrestore+0x31/0x80 kernel/locking/spinlock.c:194
spin_unlock_irqrestore include/linux/spinlock.h:406 [inline]
ida_alloc_range+0x417/0x830 lib/idr.c:453
ida_alloc include/linux/idr.h:275 [inline]
blk_alloc_queue+0x8e/0x760 block/blk-core.c:409
blk_mq_alloc_queue+0xc7/0x1a0 block/blk-mq.c:4124
scsi_alloc_sdev+0x881/0xd90 drivers/scsi/scsi_scan.c:337
scsi_probe_and_add_lun+0x789/0xda0 drivers/scsi/scsi_scan.c:1211
__scsi_scan_target+0x1ea/0x580 drivers/scsi/scsi_scan.c:1758
scsi_scan_channel drivers/scsi/scsi_scan.c:1846 [inline]
scsi_scan_channel+0x149/0x1e0 drivers/scsi/scsi_scan.c:1822
scsi_scan_host_selected+0x302/0x400 drivers/scsi/scsi_scan.c:1875
do_scsi_scan_host+0x1ef/0x260 drivers/scsi/scsi_scan.c:2014
do_scan_async+0x44/0x540 drivers/scsi/scsi_scan.c:2024
async_run_entry_fn+0x9c/0x530 kernel/async.c:129
process_one_work+0x9fb/0x1b60 kernel/workqueue.c:3231
process_scheduled_works kernel/workqueue.c:3312 [inline]
worker_thread+0x6c8/0xf70 kernel/workqueue.c:3393
kthread+0x2c1/0x3a0 kernel/kthread.c:389
ret_from_fork+0x45/0x80 arch/x86/kernel/process.c:147
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244
IN-SOFTIRQ-W at:
lock_acquire kernel/locking/lockdep.c:5754 [inline]
lock_acquire+0x1b1/0x560 kernel/locking/lockdep.c:5719
__raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline]
_raw_spin_lock_irqsave+0x3a/0x60 kernel/locking/spinlock.c:162
uart_port_lock_irqsave include/linux/serial_core.h:618 [inline]
serial8250_console_write+0xaa6/0x1090 drivers/tty/serial/8250/8250_port.c:3352
console_emit_next_record kernel/printk/printk.c:2928 [inline]
console_flush_all+0x53c/0xd70 kernel/printk/printk.c:2994
console_unlock+0xae/0x290 kernel/printk/printk.c:3063
vprintk_emit kernel/printk/printk.c:2345 [inline]
vprintk_emit+0x11a/0x5a0 kernel/printk/printk.c:2300
vprintk+0x7f/0xa0 kernel/printk/printk_safe.c:45
_printk+0xc8/0x100 kernel/printk/printk.c:2370
vkms_vblank_simulate+0xd4/0x3e0 drivers/gpu/drm/vkms/vkms_crtc.c:26
__run_hrtimer kernel/time/hrtimer.c:1687 [inline]
__hrtimer_run_queues+0x20c/0xcc0 kernel/time/hrtimer.c:1751
hrtimer_interrupt+0x31b/0x800 kernel/time/hrtimer.c:1813
local_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1032 [inline]
__sysvec_apic_timer_interrupt+0x10f/0x450 arch/x86/kernel/apic/apic.c:1049
instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1043 [inline]
sysvec_apic_timer_interrupt+0x43/0xb0 arch/x86/kernel/apic/apic.c:1043
asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:702
lock_acquire+0x1f2/0x560 kernel/locking/lockdep.c:5722
rcu_lock_acquire include/linux/rcupdate.h:329 [inline]
rcu_do_batch kernel/rcu/tree.c:2529 [inline]
rcu_core+0x7e0/0x16b0 kernel/rcu/tree.c:2809
handle_softirqs+0x216/0x8f0 kernel/softirq.c:554
__do_softirq kernel/softirq.c:588 [inline]
invoke_softirq kernel/softirq.c:428 [inline]
__irq_exit_rcu kernel/softirq.c:637 [inline]
irq_exit_rcu+0xbb/0x120 kernel/softirq.c:649
instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1043 [inline]
sysvec_apic_timer_interrupt+0x95/0xb0 arch/x86/kernel/apic/apic.c:1043
asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:702
__raw_spin_unlock_irqrestore include/linux/spinlock_api_smp.h:151 [inline]
_raw_spin_unlock_irqrestore+0x31/0x80 kernel/locking/spinlock.c:194
spin_unlock_irqrestore include/linux/spinlock.h:406 [inline]
ida_alloc_range+0x417/0x830 lib/idr.c:453
ida_alloc include/linux/idr.h:275 [inline]
blk_alloc_queue+0x8e/0x760 block/blk-core.c:409
blk_mq_alloc_queue+0xc7/0x1a0 block/blk-mq.c:4124
scsi_alloc_sdev+0x881/0xd90 drivers/scsi/scsi_scan.c:337
scsi_probe_and_add_lun+0x789/0xda0 drivers/scsi/scsi_scan.c:1211
__scsi_scan_target+0x1ea/0x580 drivers/scsi/scsi_scan.c:1758
scsi_scan_channel drivers/scsi/scsi_scan.c:1846 [inline]
scsi_scan_channel+0x149/0x1e0 drivers/scsi/scsi_scan.c:1822
scsi_scan_host_selected+0x302/0x400 drivers/scsi/scsi_scan.c:1875
do_scsi_scan_host+0x1ef/0x260 drivers/scsi/scsi_scan.c:2014
do_scan_async+0x44/0x540 drivers/scsi/scsi_scan.c:2024
async_run_entry_fn+0x9c/0x530 kernel/async.c:129
process_one_work+0x9fb/0x1b60 kernel/workqueue.c:3231
process_scheduled_works kernel/workqueue.c:3312 [inline]
worker_thread+0x6c8/0xf70 kernel/workqueue.c:3393
kthread+0x2c1/0x3a0 kernel/kthread.c:389
ret_from_fork+0x45/0x80 arch/x86/kernel/process.c:147
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244
INITIAL USE at:
lock_acquire kernel/locking/lockdep.c:5754 [inline]
lock_acquire+0x1b1/0x560 kernel/locking/lockdep.c:5719
__raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline]
_raw_spin_lock_irqsave+0x3a/0x60 kernel/locking/spinlock.c:162
uart_port_lock_irqsave include/linux/serial_core.h:618 [inline]
serial8250_do_set_termios+0x334/0x1270 drivers/tty/serial/8250/8250_port.c:2742
serial8250_set_termios+0x6e/0x80 drivers/tty/serial/8250/8250_port.c:2861
uart_set_options+0x31b/0x5f0 drivers/tty/serial/serial_core.c:2330
serial8250_console_setup+0x18a/0x460 drivers/tty/serial/8250/8250_port.c:3456
univ8250_console_setup+0x16c/0x210 drivers/tty/serial/8250/8250_core.c:634
console_call_setup kernel/printk/printk.c:3314 [inline]
console_call_setup kernel/printk/printk.c:3305 [inline]
try_enable_preferred_console+0x277/0x4c0 kernel/printk/printk.c:3355
register_console+0x30b/0x10a0 kernel/printk/printk.c:3533
univ8250_console_init+0x35/0x50 drivers/tty/serial/8250/8250_core.c:719
console_init+0xcc/0x680 kernel/printk/printk.c:3742
start_kernel+0x295/0x4c0 init/main.c:1038
x86_64_start_reservations+0x18/0x30 arch/x86/kernel/head64.c:507
x86_64_start_kernel+0xb2/0xc0 arch/x86/kernel/head64.c:488
common_startup_64+0x13e/0x148
}
... key at: [<ffffffff94de0160>] port_lock_key+0x0/0x40
the dependencies between the lock to be acquired
and HARDIRQ-irq-unsafe lock:
-> (disc_data_lock#3){.+.+}-{2:2} {
HARDIRQ-ON-R at:
lock_acquire kernel/locking/lockdep.c:5754 [inline]
lock_acquire+0x1b1/0x560 kernel/locking/lockdep.c:5719
__raw_read_lock include/linux/rwlock_api_smp.h:150 [inline]
_raw_read_lock+0x5f/0x70 kernel/locking/spinlock.c:228
sp_get+0x18/0xf0 drivers/net/hamradio/6pack.c:376
sixpack_receive_buf drivers/net/hamradio/6pack.c:439 [inline]
sixpack_receive_buf+0x59/0x1c90 drivers/net/hamradio/6pack.c:430
tty_ldisc_receive_buf+0x153/0x190 drivers/tty/tty_buffer.c:391
tty_port_default_receive_buf+0x70/0xb0 drivers/tty/tty_port.c:37
receive_buf drivers/tty/tty_buffer.c:445 [inline]
flush_to_ldisc+0x264/0x780 drivers/tty/tty_buffer.c:495
process_one_work+0x9fb/0x1b60 kernel/workqueue.c:3231
process_scheduled_works kernel/workqueue.c:3312 [inline]
worker_thread+0x6c8/0xf70 kernel/workqueue.c:3393
kthread+0x2c1/0x3a0 kernel/kthread.c:389
ret_from_fork+0x45/0x80 arch/x86/kernel/process.c:147
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244
SOFTIRQ-ON-R at:
lock_acquire kernel/locking/lockdep.c:5754 [inline]
lock_acquire+0x1b1/0x560 kernel/locking/lockdep.c:5719
__raw_read_lock include/linux/rwlock_api_smp.h:150 [inline]
_raw_read_lock+0x5f/0x70 kernel/locking/spinlock.c:228
sp_get+0x18/0xf0 drivers/net/hamradio/6pack.c:376
sixpack_receive_buf drivers/net/hamradio/6pack.c:439 [inline]
sixpack_receive_buf+0x59/0x1c90 drivers/net/hamradio/6pack.c:430
tty_ldisc_receive_buf+0x153/0x190 drivers/tty/tty_buffer.c:391
tty_port_default_receive_buf+0x70/0xb0 drivers/tty/tty_port.c:37
receive_buf drivers/tty/tty_buffer.c:445 [inline]
flush_to_ldisc+0x264/0x780 drivers/tty/tty_buffer.c:495
process_one_work+0x9fb/0x1b60 kernel/workqueue.c:3231
process_scheduled_works kernel/workqueue.c:3312 [inline]
worker_thread+0x6c8/0xf70 kernel/workqueue.c:3393
kthread+0x2c1/0x3a0 kernel/kthread.c:389
ret_from_fork+0x45/0x80 arch/x86/kernel/process.c:147
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244
INITIAL READ USE at:
lock_acquire kernel/locking/lockdep.c:5754 [inline]
lock_acquire+0x1b1/0x560 kernel/locking/lockdep.c:5719
__raw_read_lock include/linux/rwlock_api_smp.h:150 [inline]
_raw_read_lock+0x5f/0x70 kernel/locking/spinlock.c:228
sp_get+0x18/0xf0 drivers/net/hamradio/6pack.c:376
sixpack_receive_buf drivers/net/hamradio/6pack.c:439 [inline]
sixpack_receive_buf+0x59/0x1c90 drivers/net/hamradio/6pack.c:430
tty_ldisc_receive_buf+0x153/0x190 drivers/tty/tty_buffer.c:391
tty_port_default_receive_buf+0x70/0xb0 drivers/tty/tty_port.c:37
receive_buf drivers/tty/tty_buffer.c:445 [inline]
flush_to_ldisc+0x264/0x780 drivers/tty/tty_buffer.c:495
process_one_work+0x9fb/0x1b60 kernel/workqueue.c:3231
process_scheduled_works kernel/workqueue.c:3312 [inline]
worker_thread+0x6c8/0xf70 kernel/workqueue.c:3393
kthread+0x2c1/0x3a0 kernel/kthread.c:389
ret_from_fork+0x45/0x80 arch/x86/kernel/process.c:147
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244
}
... key at: [<ffffffff8ec3f2d8>] disc_data_lock+0x18/0xf20
... acquired at:
lock_acquire kernel/locking/lockdep.c:5754 [inline]
lock_acquire+0x1b1/0x560 kernel/locking/lockdep.c:5719
__raw_read_lock include/linux/rwlock_api_smp.h:150 [inline]
_raw_read_lock+0x5f/0x70 kernel/locking/spinlock.c:228
sp_get+0x18/0xf0 drivers/net/hamradio/6pack.c:376
sixpack_write_wakeup+0x20/0x390 drivers/net/hamradio/6pack.c:397
tty_wakeup+0xe5/0x120 drivers/tty/tty_io.c:523
tty_port_default_wakeup+0x2a/0x40 drivers/tty/tty_port.c:69
serial8250_tx_chars+0x68e/0x860 drivers/tty/serial/8250/8250_port.c:1821
__start_tx+0x3e9/0x4a0 drivers/tty/serial/8250/8250_port.c:1527
serial8250_start_tx+0x363/0x530 drivers/tty/serial/8250/8250_port.c:1636
__uart_start+0x292/0x4c0 drivers/tty/serial/serial_core.c:160
uart_write+0x191/0x3e0 drivers/tty/serial/serial_core.c:633
decode_prio_command drivers/net/hamradio/6pack.c:888 [inline]
sixpack_decode drivers/net/hamradio/6pack.c:963 [inline]
sixpack_receive_buf drivers/net/hamradio/6pack.c:453 [inline]
sixpack_receive_buf+0x3fd/0x1c90 drivers/net/hamradio/6pack.c:430
tty_ldisc_receive_buf+0x153/0x190 drivers/tty/tty_buffer.c:391
tty_port_default_receive_buf+0x70/0xb0 drivers/tty/tty_port.c:37
receive_buf drivers/tty/tty_buffer.c:445 [inline]
flush_to_ldisc+0x264/0x780 drivers/tty/tty_buffer.c:495
process_one_work+0x9fb/0x1b60 kernel/workqueue.c:3231
process_scheduled_works kernel/workqueue.c:3312 [inline]
worker_thread+0x6c8/0xf70 kernel/workqueue.c:3393
kthread+0x2c1/0x3a0 kernel/kthread.c:389
ret_from_fork+0x45/0x80 arch/x86/kernel/process.c:147
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244
stack backtrace:
CPU: 1 PID: 6237 Comm: kworker/u8:12 Not tainted 6.10.0-rc3-syzkaller-00022-gcea2a26553ac #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 06/07/2024
Workqueue: events_unbound flush_to_ldisc
Call Trace:
<TASK>
__dump_stack lib/dump_stack.c:88 [inline]
dump_stack_lvl+0x116/0x1f0 lib/dump_stack.c:114
print_bad_irq_dependency kernel/locking/lockdep.c:2626 [inline]
check_irq_usage+0xe3c/0x1490 kernel/locking/lockdep.c:2865
check_prev_add kernel/locking/lockdep.c:3138 [inline]
check_prevs_add kernel/locking/lockdep.c:3253 [inline]
validate_chain kernel/locking/lockdep.c:3869 [inline]
__lock_acquire+0x248e/0x3b30 kernel/locking/lockdep.c:5137
lock_acquire kernel/locking/lockdep.c:5754 [inline]
lock_acquire+0x1b1/0x560 kernel/locking/lockdep.c:5719
__raw_read_lock include/linux/rwlock_api_smp.h:150 [inline]
_raw_read_lock+0x5f/0x70 kernel/locking/spinlock.c:228
sp_get+0x18/0xf0 drivers/net/hamradio/6pack.c:376
sixpack_write_wakeup+0x20/0x390 drivers/net/hamradio/6pack.c:397
tty_wakeup+0xe5/0x120 drivers/tty/tty_io.c:523
tty_port_default_wakeup+0x2a/0x40 drivers/tty/tty_port.c:69
serial8250_tx_chars+0x68e/0x860 drivers/tty/serial/8250/8250_port.c:1821
__start_tx+0x3e9/0x4a0 drivers/tty/serial/8250/8250_port.c:1527
serial8250_start_tx+0x363/0x530 drivers/tty/serial/8250/8250_port.c:1636
__uart_start+0x292/0x4c0 drivers/tty/serial/serial_core.c:160
uart_write+0x191/0x3e0 drivers/tty/serial/serial_core.c:633
decode_prio_command drivers/net/hamradio/6pack.c:888 [inline]
sixpack_decode drivers/net/hamradio/6pack.c:963 [inline]
sixpack_receive_buf drivers/net/hamradio/6pack.c:453 [inline]
sixpack_receive_buf+0x3fd/0x1c90 drivers/net/hamradio/6pack.c:430
tty_ldisc_receive_buf+0x153/0x190 drivers/tty/tty_buffer.c:391
tty_port_default_receive_buf+0x70/0xb0 drivers/tty/tty_port.c:37
receive_buf drivers/tty/tty_buffer.c:445 [inline]
flush_to_ldisc+0x264/0x780 drivers/tty/tty_buffer.c:495
process_one_work+0x9fb/0x1b60 kernel/workqueue.c:3231
process_scheduled_works kernel/workqueue.c:3312 [inline]
worker_thread+0x6c8/0xf70 kernel/workqueue.c:3393
kthread+0x2c1/0x3a0 kernel/kthread.c:389
ret_from_fork+0x45/0x80 arch/x86/kernel/process.c:147
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244
</TASK>
netdevsim netdevsim3 netdevsim3 (unregistering): unset [1, 0] type 2 family 0 port 6081 - 0