linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] powerpc/powermac: Add missing lockdep_register_key()
@ 2021-11-30  9:32 Christophe Leroy
  2021-11-30 13:53 ` Erhard F.
  2021-12-07 13:27 ` Michael Ellerman
  0 siblings, 2 replies; 4+ messages in thread
From: Christophe Leroy @ 2021-11-30  9:32 UTC (permalink / raw)
  To: Benjamin Herrenschmidt, Paul Mackerras, Michael Ellerman
  Cc: Christophe Leroy, linux-kernel, linuxppc-dev, Erhard Furtner

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


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] powerpc/powermac: Add missing lockdep_register_key()
  2021-11-30  9:32 [PATCH] powerpc/powermac: Add missing lockdep_register_key() Christophe Leroy
@ 2021-11-30 13:53 ` Erhard F.
  2021-11-30 14:06   ` Christophe Leroy
  2021-12-07 13:27 ` Michael Ellerman
  1 sibling, 1 reply; 4+ messages in thread
From: Erhard F. @ 2021-11-30 13:53 UTC (permalink / raw)
  To: Christophe Leroy
  Cc: Benjamin Herrenschmidt, Paul Mackerras, Michael Ellerman,
	linux-kernel, linuxppc-dev

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] powerpc/powermac: Add missing lockdep_register_key()
  2021-11-30 13:53 ` Erhard F.
@ 2021-11-30 14:06   ` Christophe Leroy
  0 siblings, 0 replies; 4+ messages in thread
From: Christophe Leroy @ 2021-11-30 14:06 UTC (permalink / raw)
  To: Erhard F.
  Cc: Benjamin Herrenschmidt, Paul Mackerras, Michael Ellerman,
	linux-kernel, linuxppc-dev



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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] powerpc/powermac: Add missing lockdep_register_key()
  2021-11-30  9:32 [PATCH] powerpc/powermac: Add missing lockdep_register_key() Christophe Leroy
  2021-11-30 13:53 ` Erhard F.
@ 2021-12-07 13:27 ` Michael Ellerman
  1 sibling, 0 replies; 4+ messages in thread
From: Michael Ellerman @ 2021-12-07 13:27 UTC (permalink / raw)
  To: Benjamin Herrenschmidt, Christophe Leroy, Paul Mackerras,
	Michael Ellerman
  Cc: Erhard Furtner, linuxppc-dev, linux-kernel

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-12-07 13:28 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-30  9:32 [PATCH] powerpc/powermac: Add missing lockdep_register_key() Christophe Leroy
2021-11-30 13:53 ` Erhard F.
2021-11-30 14:06   ` Christophe Leroy
2021-12-07 13:27 ` Michael Ellerman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).