A little bit of enabled debugging gave this lockdep irq warning. The machine is a e5500 Book-E running in 32-bit (e500mc).
------------[ cut here ]------------ WARNING: CPU: 0 PID: 0 at kernel/smp.c:807 smp_call_function_many_cond+0x520/0x700 Modules linked in: CPU: 0 UID: 0 PID: 0 Comm: swapper/0 Not tainted 6.12.45-5.26+ #1 Hardware name: wmo,Viper-<LEGACYSWCLASS>12A e5500 0x80241021 CoreNet Generic NIP: c016c9c8 LR: c016c510 CTR: c00d2dd4 REGS: c216ddb0 TRAP: 0700 Not tainted (6.12.45-5.26+) MSR: 00021002 <CE,ME> CR: 24004888 XER: 20000000 GPR00: c016cccc c216de90 c20725c0 00000000 c116d440 00000000 00000001 00000000 GPR08: 1c6bb000 00000003 00000003 76153240 84004888 6ccf16ef 1ff29e0c 0ff51000 GPR16: 1fe9a6fc 00000004 00000000 00000000 00000000 00000000 00000000 c21a0000 GPR24: 00000001 c016cccc 00000000 00000000 c0021640 c219b528 00000000 00000001 NIP [c016c9c8] smp_call_function_many_cond+0x520/0x700 LR [c016c510] smp_call_function_many_cond+0x68/0x700 Call Trace: [c216de90] [c00dd268] lock_acquire.part.0+0x124/0x338 (unreliable) [c216def0] [c016cccc] smp_call_function+0x4c/0xa8 [c216df10] [c00218e8] flush_tlb_kernel_range+0x28/0x7c [c216df20] [c0023170] patch_mem.constprop.0+0x13c/0x1ec [c216df50] [c02b71e0] __jump_label_update+0x78/0x130 [c216df80] [c02b82d4] static_key_slow_inc_cpuslocked+0x9c/0xf0 [c216dfa0] [c2013494] sched_clock_init+0x1c/0x64 [c216dfb0] [c200130c] start_kernel+0x40c/0x530 [c216dff0] [c00003e4] set_ivor+0x13c/0x178 Code: 7ea9402e 81220000 3929ffff 2c090000 91220000 40c20014 81220080 71290004 41c20008 48d64931 2c150000 40c201cc <0fe00000> 82810030 4bfffc30 60000000 irq event stamp: 170 hardirqs last enabled at (169): [<c0edc424>] _raw_spin_unlock_irqrestore+0x74/0xb0 hardirqs last disabled at (170): [<c0023204>] patch_mem.constprop.0+0x1d0/0x1ec softirqs last enabled at (10): [<c004a50c>] handle_softirqs+0x400/0x418 softirqs last disabled at (3): [<c0006654>] do_softirq_own_stack+0x34/0x4c ---[ end trace 0000000000000000 ]--- Seems patch_mem() in code-patching.c is doing interesting things here? I don't get why it disables irqs and calls TLB flushing. How does that work with SMP IPIs? Maybe this warning is a dud for 32-bit Book-Es nohash MMU?
