New deadlock?

Jookia contact at jookia.org
Thu Mar 12 22:22:37 EDT 2020


I was debugging the big deadlock that's fixed in staging-next when I hit
this backtrace. Anybody have any ideas on what's going on here?

================================
WARNING: inconsistent lock state
5.6.0-rc5jook #1 Tainted: G         C       
--------------------------------
inconsistent {HARDIRQ-ON-W} -> {IN-HARDIRQ-W} usage.
swapper/0/0 [HC1[1]:SC0[0]:HE0:SE1] takes:
ffffffff8543c8e0 (console_lock){?.+.}, at: speakup_clear_selection+0xe/0x20 [speakup]
{HARDIRQ-ON-W} state was registered at:
  lock_acquire+0x13f/0x370
  console_lock+0x33/0x50
  con_init+0x17/0x644
  console_init+0x335/0x4b3
  start_kernel+0x4e8/0x7af
  x86_64_start_reservations+0x24/0x26
  x86_64_start_kernel+0xf5/0xfc
  secondary_startup_64+0xb6/0xc0
irq event stamp: 2657920
hardirqs last  enabled at (2657917): [<ffffffff83b64d4a>] cpuidle_enter_state+0x11a/0xda0
hardirqs last disabled at (2657918): [<ffffffff82206c31>] trace_hardirqs_off_thunk+0x1a/0x1c
softirqs last  enabled at (2657920): [<ffffffff823f30c1>] _local_bh_enable+0x21/0x40
softirqs last disabled at (2657919): [<ffffffff823f41bc>] irq_enter+0xac/0xe0
\x0aother info that might help us debug this:
 Possible unsafe locking scenario:\x0a
       CPU0
       ----
  lock(console_lock);
  <Interrupt>
    lock(console_lock);
\x0a *** DEADLOCK ***\x0a
6 locks held by swapper/0/0:
 #0: ffff8881583820e8 (&serio->lock){-.-.}, at: serio_interrupt+0x2e/0x120 [serio]
 #1: ffff888157873228 (&(&dev->event_lock)->rlock){-.-.}, at: input_event+0x53/0x90
 #2: ffffffff85451240 (rcu_read_lock){....}, at: input_pass_values+0x2d/0x5a0
 #3: ffffffff85abf438 (kbd_event_lock){-.-.}, at: kbd_event+0x9a/0x3b20
 #4: ffffffff85451240 (rcu_read_lock){....}, at: __atomic_notifier_call_chain+0x5/0x130
 #5: ffffffffc0c100f8 (speakup_info.spinlock){-.-.}, at: keyboard_notifier_call+0x774/0x4a40 [speakup]
\x0astack backtrace:
CPU: 0 PID: 0 Comm: swapper/0 Tainted: G         C        5.6.0-rc5jook #1
Hardware name: LENOVO 6474B86/6474B86, BIOS CBET4000 4.5-732-gcc9095f 02/12/2017
Call Trace:
 <IRQ>
 dump_stack+0xc2/0x11a
 print_usage_bug.cold+0x3e0/0x4b1
 mark_lock+0xd95/0x1390
 ? print_irq_inversion_bug+0xa0/0xa0
 __lock_acquire+0x21eb/0x5730
 ? __kasan_check_read+0x11/0x20
 ? check_chain_key+0x215/0x5e0
 ? register_lock_class+0x1580/0x1580
 ? lock_downgrade+0x7a0/0x7a0
 ? __rwlock_init+0x140/0x140
 lock_acquire+0x13f/0x370
 ? speakup_clear_selection+0xe/0x20 [speakup]
 console_lock+0x33/0x50
 ? speakup_clear_selection+0xe/0x20 [speakup]
 speakup_clear_selection+0xe/0x20 [speakup]
 speakup_cut+0x19e/0x4b0 [speakup]
 keyboard_notifier_call+0x1f04/0x4a40 [speakup]
 ? read_all_doc+0x240/0x240 [speakup]
 notifier_call_chain+0xbf/0x130
 __atomic_notifier_call_chain+0x80/0x130
 atomic_notifier_call_chain+0x16/0x20
 kbd_event+0x7d7/0x3b20
 ? k_pad+0x850/0x850
 ? sysrq_filter+0x450/0xd40
 input_to_handler+0x362/0x4b0
 ? rcu_read_lock_sched_held+0xe0/0xe0
 input_pass_values+0x408/0x5a0
 ? __rwlock_init+0x140/0x140
 ? lock_acquire+0x13f/0x370
 input_handle_event+0x70e/0x1380
 input_event+0x67/0x90
 atkbd_interrupt+0xe62/0x1d4e [atkbd]
 ? __kasan_check_write+0x14/0x20
 ? atkbd_event_work+0x130/0x130 [atkbd]
 ? _raw_spin_lock_irqsave+0x26/0x70
 serio_interrupt+0x93/0x120 [serio]
 i8042_interrupt+0x232/0x510 [i8042]
 ? rcu_read_lock_bh_held+0xd0/0xd0
 ? handle_irq_event+0xa5/0x13a
 ? i8042_remove+0x1f0/0x1f0 [i8042]
 __handle_irq_event_percpu+0xe6/0x6c0
 handle_irq_event_percpu+0x71/0x150
 ? __handle_irq_event_percpu+0x6c0/0x6c0
 ? __kasan_check_read+0x11/0x20
 ? do_raw_spin_unlock+0x5c/0x240
 handle_irq_event+0xad/0x13a
 handle_edge_irq+0x233/0xa90
 do_IRQ+0x10b/0x310
 common_interrupt+0xf/0xf
 </IRQ>
RIP: 0010:cpuidle_enter_state+0x11e/0xda0
Code: b8 5d 94 fe 80 7d c0 00 74 17 9c 58 66 66 90 66 90 f6 c4 02 0f 85 fe 07 00 00 31 ff e8 7b 80 ac fe e8 46 b8 c2 fe fb 66 66 90 <66> 66 90 45 85 ed 0f 88 42 06 00 00 4d 63 f5 49 83 fe 09 0f 87 4c
RSP: 0018:ffffffff85207cb0 EFLAGS: 00000286 ORIG_RAX: ffffffffffffffdb
RAX: 0000000000000007 RBX: ffff88815a452f90 RCX: 0000000000000000
RDX: 0000000000000000 RSI: 0000000000000006 RDI: ffffffff85226fc4
RBP: ffffffff85207d08 R08: 0000000000000001 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000000 R12: ffffffff859bfd60
R13: 0000000000000003 R14: ffffffff859bfeb0 R15: 0000000000000003
 cpuidle_enter+0x4f/0xa0
 do_idle+0x41d/0x5a0
 ? arch_cpu_idle_exit+0x50/0x50
 cpu_startup_entry+0x20/0x22
 rest_init+0x1e4/0x32d
 arch_call_rest_init+0xe/0x1b
 start_kernel+0x774/0x7af
 ? thread_stack_cache_init+0xb/0xb
 x86_64_start_reservations+0x24/0x26
 x86_64_start_kernel+0xf5/0xfc
 secondary_startup_64+0xb6/0xc0
Selection: mark console not the same as cut


More information about the Speakup mailing list