lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20211130163016.2737322a@yea>
Date:   Tue, 30 Nov 2021 16:30:16 +0100
From:   "Erhard F." <erhard_f@...lbox.org>
To:     Christophe Leroy <christophe.leroy@...roup.eu>
Cc:     Benjamin Herrenschmidt <benh@...nel.crashing.org>,
        Paul Mackerras <paulus@...ba.org>,
        Michael Ellerman <mpe@...erman.id.au>,
        linux-kernel@...r.kernel.org, linuxppc-dev@...ts.ozlabs.org
Subject: Re: [PATCH v2] powerpc/powermac: Add missing lockdep_register_key()

On Tue, 30 Nov 2021 15:30:42 +0100
Christophe Leroy <christophe.leroy@...roup.eu> wrote:

> KeyWest i2c @0xf8001003 irq 42 /uni-n@...00000/i2c@...01000
> 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@...lbox.org>
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=200055
> Fixes: 9e607f72748d ("i2c_powermac: shut up lockdep warning")
> Signed-off-by: Christophe Leroy <christophe.leroy@...roup.eu>
> ---
> v2: Added lockdep_register_key() at two other places.
> ---
>  arch/powerpc/platforms/powermac/low_i2c.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/arch/powerpc/platforms/powermac/low_i2c.c b/arch/powerpc/platforms/powermac/low_i2c.c
> index f77a59b5c2e1..df89d916236d 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;
> @@ -810,6 +811,7 @@ static void __init pmu_i2c_probe(void)
>  		bus->hostdata = bus + 1;
>  		bus->xfer = pmu_i2c_xfer;
>  		mutex_init(&bus->mutex);
> +		lockdep_register_key(&bus->lock_key);
>  		lockdep_set_class(&bus->mutex, &bus->lock_key);
>  		bus->flags = pmac_i2c_multibus;
>  		list_add(&bus->link, &pmac_i2c_busses);
> @@ -933,6 +935,7 @@ static void __init smu_i2c_probe(void)
>  		bus->hostdata = bus + 1;
>  		bus->xfer = smu_i2c_xfer;
>  		mutex_init(&bus->mutex);
> +		lockdep_register_key(&bus->lock_key);
>  		lockdep_set_class(&bus->mutex, &bus->lock_key);
>  		bus->flags = 0;
>  		list_add(&bus->link, &pmac_i2c_busses);
> -- 
> 2.33.1
> 

Yes, that did the trick! The lockdep spalt is gone now. Many thanks Christophe!

I'll close the original bugzilla report once this gets into stable.

Regards,
Erhard

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ