Message ID | 69e4f55565bb45ebb0843977801b245af0c666fe.1638264741.git.christophe.leroy@csgroup.eu (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | powerpc/powermac: Add missing lockdep_register_key() | expand |
Context | Check | Description |
---|---|---|
snowpatch_ozlabs/github-powerpc_selftests | success | Successfully ran 8 jobs. |
snowpatch_ozlabs/github-powerpc_ppctests | success | Successfully ran 8 jobs. |
snowpatch_ozlabs/github-powerpc_sparse | success | Successfully ran 4 jobs. |
snowpatch_ozlabs/github-powerpc_clang | success | Successfully ran 7 jobs. |
snowpatch_ozlabs/github-powerpc_kernel_qemu | success | Successfully ran 24 jobs. |
On Tue, 30 Nov 2021 10:32:42 +0100 Christophe Leroy <christophe.leroy@csgroup.eu> wrote: > KeyWest i2c @0xf8001003 irq 42 /uni-n@f8000000/i2c@f8001000 > BUG: key c2d00cbc has not been registered! > ------------[ cut here ]------------ > DEBUG_LOCKS_WARN_ON(1) > WARNING: CPU: 0 PID: 1 at kernel/locking/lockdep.c:4801 lockdep_init_map_type+0x4c0/0xb4c > Modules linked in: > CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.15.5-gentoo-PowerMacG4 #9 > NIP: c01a9428 LR: c01a9428 CTR: 00000000 > REGS: e1033cf0 TRAP: 0700 Not tainted (5.15.5-gentoo-PowerMacG4) > MSR: 00029032 <EE,ME,IR,DR,RI> CR: 24002002 XER: 00000000 > > GPR00: c01a9428 e1033db0 c2d1cf20 00000016 00000004 00000001 c01c0630 e1033a73 > GPR08: 00000000 00000000 00000000 e1033db0 24002004 00000000 f8729377 00000003 > GPR16: c1829a9c 00000000 18305357 c1416fc0 c1416f80 c006ac60 c2d00ca8 c1416f00 > GPR24: 00000000 c21586f0 c2160000 00000000 c2d00cbc c2170000 c216e1a0 c2160000 > NIP [c01a9428] lockdep_init_map_type+0x4c0/0xb4c > LR [c01a9428] lockdep_init_map_type+0x4c0/0xb4c > Call Trace: > [e1033db0] [c01a9428] lockdep_init_map_type+0x4c0/0xb4c (unreliable) > [e1033df0] [c1c177b8] kw_i2c_add+0x334/0x424 > [e1033e20] [c1c18294] pmac_i2c_init+0x9ec/0xa9c > [e1033e80] [c1c1a790] smp_core99_probe+0xbc/0x35c > [e1033eb0] [c1c03cb0] kernel_init_freeable+0x190/0x5a4 > [e1033f10] [c000946c] kernel_init+0x28/0x154 > [e1033f30] [c0035148] ret_from_kernel_thread+0x14/0x1c > > Add missing lockdep_register_key() > > Reported-by: Erhard Furtner <erhard_f@mailbox.org> > Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu> > --- > arch/powerpc/platforms/powermac/low_i2c.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/arch/powerpc/platforms/powermac/low_i2c.c b/arch/powerpc/platforms/powermac/low_i2c.c > index f77a59b5c2e1..de34fa34c42d 100644 > --- a/arch/powerpc/platforms/powermac/low_i2c.c > +++ b/arch/powerpc/platforms/powermac/low_i2c.c > @@ -582,6 +582,7 @@ static void __init kw_i2c_add(struct pmac_i2c_host_kw *host, > bus->close = kw_i2c_close; > bus->xfer = kw_i2c_xfer; > mutex_init(&bus->mutex); > + lockdep_register_key(&bus->lock_key); > lockdep_set_class(&bus->mutex, &bus->lock_key); > if (controller == busnode) > bus->flags = pmac_i2c_multibus; > -- > 2.33.1 > The patch applied on 5.15.5 but unfortunately was not enough to fix the lockdep bug. Originally was bug #200055 (https://bugzilla.kernel.org/show_bug.cgi?id=200055). Regards, Erhard
Le 30/11/2021 à 14:53, Erhard F. a écrit : > On Tue, 30 Nov 2021 10:32:42 +0100 > Christophe Leroy <christophe.leroy@csgroup.eu> wrote: > >> KeyWest i2c @0xf8001003 irq 42 /uni-n@f8000000/i2c@f8001000 >> BUG: key c2d00cbc has not been registered! >> ------------[ cut here ]------------ >> DEBUG_LOCKS_WARN_ON(1) >> WARNING: CPU: 0 PID: 1 at kernel/locking/lockdep.c:4801 lockdep_init_map_type+0x4c0/0xb4c >> Modules linked in: >> CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.15.5-gentoo-PowerMacG4 #9 >> NIP: c01a9428 LR: c01a9428 CTR: 00000000 >> REGS: e1033cf0 TRAP: 0700 Not tainted (5.15.5-gentoo-PowerMacG4) >> MSR: 00029032 <EE,ME,IR,DR,RI> CR: 24002002 XER: 00000000 >> >> GPR00: c01a9428 e1033db0 c2d1cf20 00000016 00000004 00000001 c01c0630 e1033a73 >> GPR08: 00000000 00000000 00000000 e1033db0 24002004 00000000 f8729377 00000003 >> GPR16: c1829a9c 00000000 18305357 c1416fc0 c1416f80 c006ac60 c2d00ca8 c1416f00 >> GPR24: 00000000 c21586f0 c2160000 00000000 c2d00cbc c2170000 c216e1a0 c2160000 >> NIP [c01a9428] lockdep_init_map_type+0x4c0/0xb4c >> LR [c01a9428] lockdep_init_map_type+0x4c0/0xb4c >> Call Trace: >> [e1033db0] [c01a9428] lockdep_init_map_type+0x4c0/0xb4c (unreliable) >> [e1033df0] [c1c177b8] kw_i2c_add+0x334/0x424 >> [e1033e20] [c1c18294] pmac_i2c_init+0x9ec/0xa9c >> [e1033e80] [c1c1a790] smp_core99_probe+0xbc/0x35c >> [e1033eb0] [c1c03cb0] kernel_init_freeable+0x190/0x5a4 >> [e1033f10] [c000946c] kernel_init+0x28/0x154 >> [e1033f30] [c0035148] ret_from_kernel_thread+0x14/0x1c >> >> Add missing lockdep_register_key() >> >> Reported-by: Erhard Furtner <erhard_f@mailbox.org> >> Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu> >> --- >> arch/powerpc/platforms/powermac/low_i2c.c | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/arch/powerpc/platforms/powermac/low_i2c.c b/arch/powerpc/platforms/powermac/low_i2c.c >> index f77a59b5c2e1..de34fa34c42d 100644 >> --- a/arch/powerpc/platforms/powermac/low_i2c.c >> +++ b/arch/powerpc/platforms/powermac/low_i2c.c >> @@ -582,6 +582,7 @@ static void __init kw_i2c_add(struct pmac_i2c_host_kw *host, >> bus->close = kw_i2c_close; >> bus->xfer = kw_i2c_xfer; >> mutex_init(&bus->mutex); >> + lockdep_register_key(&bus->lock_key); >> lockdep_set_class(&bus->mutex, &bus->lock_key); >> if (controller == busnode) >> bus->flags = pmac_i2c_multibus; >> -- >> 2.33.1 >> > > The patch applied on 5.15.5 but unfortunately was not enough to fix the lockdep bug. > > Originally was bug #200055 (https://bugzilla.kernel.org/show_bug.cgi?id=200055). > Is that still exactly the same backtrace , ie still pointing to kw_i2c_add() ? Because I see from original bug that in fact the offending commit added lockdep_set_class() at 3 places. So it is likely that lockdep_register_key() also needs to be added at the two other places. So if the call trace now gives pmu_i2c_probe() or smu_i2c_probe() then you could try and add lockdep_register_key() also there and see if it fixes things. Christophe
On Tue, 30 Nov 2021 10:32:42 +0100, Christophe Leroy wrote: > KeyWest i2c @0xf8001003 irq 42 /uni-n@f8000000/i2c@f8001000 > BUG: key c2d00cbc has not been registered! > ------------[ cut here ]------------ > DEBUG_LOCKS_WARN_ON(1) > WARNING: CPU: 0 PID: 1 at kernel/locking/lockdep.c:4801 lockdep_init_map_type+0x4c0/0xb4c > Modules linked in: > CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.15.5-gentoo-PowerMacG4 #9 > NIP: c01a9428 LR: c01a9428 CTR: 00000000 > REGS: e1033cf0 TRAP: 0700 Not tainted (5.15.5-gentoo-PowerMacG4) > MSR: 00029032 <EE,ME,IR,DR,RI> CR: 24002002 XER: 00000000 > > [...] Applied to powerpc/next. [1/1] powerpc/powermac: Add missing lockdep_register_key() https://git.kernel.org/powerpc/c/df1f679d19edb9eeb67cc2f96b29375f21991945 cheers
diff --git a/arch/powerpc/platforms/powermac/low_i2c.c b/arch/powerpc/platforms/powermac/low_i2c.c index f77a59b5c2e1..de34fa34c42d 100644 --- a/arch/powerpc/platforms/powermac/low_i2c.c +++ b/arch/powerpc/platforms/powermac/low_i2c.c @@ -582,6 +582,7 @@ static void __init kw_i2c_add(struct pmac_i2c_host_kw *host, bus->close = kw_i2c_close; bus->xfer = kw_i2c_xfer; mutex_init(&bus->mutex); + lockdep_register_key(&bus->lock_key); lockdep_set_class(&bus->mutex, &bus->lock_key); if (controller == busnode) bus->flags = pmac_i2c_multibus;
KeyWest i2c @0xf8001003 irq 42 /uni-n@f8000000/i2c@f8001000 BUG: key c2d00cbc has not been registered! ------------[ cut here ]------------ DEBUG_LOCKS_WARN_ON(1) WARNING: CPU: 0 PID: 1 at kernel/locking/lockdep.c:4801 lockdep_init_map_type+0x4c0/0xb4c Modules linked in: CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.15.5-gentoo-PowerMacG4 #9 NIP: c01a9428 LR: c01a9428 CTR: 00000000 REGS: e1033cf0 TRAP: 0700 Not tainted (5.15.5-gentoo-PowerMacG4) MSR: 00029032 <EE,ME,IR,DR,RI> CR: 24002002 XER: 00000000 GPR00: c01a9428 e1033db0 c2d1cf20 00000016 00000004 00000001 c01c0630 e1033a73 GPR08: 00000000 00000000 00000000 e1033db0 24002004 00000000 f8729377 00000003 GPR16: c1829a9c 00000000 18305357 c1416fc0 c1416f80 c006ac60 c2d00ca8 c1416f00 GPR24: 00000000 c21586f0 c2160000 00000000 c2d00cbc c2170000 c216e1a0 c2160000 NIP [c01a9428] lockdep_init_map_type+0x4c0/0xb4c LR [c01a9428] lockdep_init_map_type+0x4c0/0xb4c Call Trace: [e1033db0] [c01a9428] lockdep_init_map_type+0x4c0/0xb4c (unreliable) [e1033df0] [c1c177b8] kw_i2c_add+0x334/0x424 [e1033e20] [c1c18294] pmac_i2c_init+0x9ec/0xa9c [e1033e80] [c1c1a790] smp_core99_probe+0xbc/0x35c [e1033eb0] [c1c03cb0] kernel_init_freeable+0x190/0x5a4 [e1033f10] [c000946c] kernel_init+0x28/0x154 [e1033f30] [c0035148] ret_from_kernel_thread+0x14/0x1c Add missing lockdep_register_key() Reported-by: Erhard Furtner <erhard_f@mailbox.org> Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu> --- arch/powerpc/platforms/powermac/low_i2c.c | 1 + 1 file changed, 1 insertion(+)