* [PATCH, RESEND] regulator: core: fix regulator_lock_supply regression @ 2015-11-27 13:46 Arnd Bergmann 2015-12-01 13:16 ` Mark Brown 0 siblings, 1 reply; 3+ messages in thread From: Arnd Bergmann @ 2015-11-27 13:46 UTC (permalink / raw) To: linux-arm-kernel As noticed by Geert Uytterhoeven, my patch to avoid a harmless build warning in regulator_lock_supply() was total crap and introduced a real bug: > [ BUG: bad unlock balance detected! ] > kworker/u4:0/6 is trying to release lock (&rdev->mutex) at: > [<c0247b84>] regulator_set_voltage+0x38/0x50 we still lock the regulator supplies, but not the actual regulators, so we are missing a lock, and the unlock is unbalanced. This rectifies it by first locking the regulator device itself before using the same loop as before to lock its supplies. Reported-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Arnd Bergmann <arnd@arndb.de> Fixes: 716fec9d1965 ("[SUBMITTED] regulator: core: avoid unused variable warning") --- rebased on top of regulators.git #for-next diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c index c9bdca5f3b9b..89e4dcb84758 100644 --- a/drivers/regulator/core.c +++ b/drivers/regulator/core.c @@ -140,7 +140,8 @@ static void regulator_lock_supply(struct regulator_dev *rdev) { int i; - for (i = 0; rdev->supply; rdev = rdev->supply->rdev, i++) + mutex_lock(&rdev->mutex); + for (i = 1; rdev->supply; rdev = rdev->supply->rdev, i++) mutex_lock_nested(&rdev->mutex, i); } ^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH, RESEND] regulator: core: fix regulator_lock_supply regression 2015-11-27 13:46 [PATCH, RESEND] regulator: core: fix regulator_lock_supply regression Arnd Bergmann @ 2015-12-01 13:16 ` Mark Brown 2015-12-01 13:21 ` Arnd Bergmann 0 siblings, 1 reply; 3+ messages in thread From: Mark Brown @ 2015-12-01 13:16 UTC (permalink / raw) To: linux-arm-kernel On Fri, Nov 27, 2015 at 02:46:41PM +0100, Arnd Bergmann wrote: > As noticed by Geert Uytterhoeven, my patch to avoid a harmless build warning > in regulator_lock_supply() was total crap and introduced a real bug: I'm going to drop both this and the commit it's fixing for now as this is causing boot failures on several boards (none of which I have sadly) in -next: http://kernelci.org/boot/all/job/broonie-regulator/kernel/v4.4-rc3-17-ga6498dba8869/ which were bisected by Tyler to this: http://hastebin.com/noluripepa.sm I'm not seeing anything obvious in the code at the minute having looked for several seconds, I'll have a proper look later today all being well. -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 473 bytes Desc: not available URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20151201/9be2276e/attachment.sig> ^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH, RESEND] regulator: core: fix regulator_lock_supply regression 2015-12-01 13:16 ` Mark Brown @ 2015-12-01 13:21 ` Arnd Bergmann 0 siblings, 0 replies; 3+ messages in thread From: Arnd Bergmann @ 2015-12-01 13:21 UTC (permalink / raw) To: linux-arm-kernel On Tuesday 01 December 2015 13:16:39 Mark Brown wrote: > On Fri, Nov 27, 2015 at 02:46:41PM +0100, Arnd Bergmann wrote: > > As noticed by Geert Uytterhoeven, my patch to avoid a harmless build warning > > in regulator_lock_supply() was total crap and introduced a real bug: > > I'm going to drop both this and the commit it's fixing for now as this > is causing boot failures on several boards (none of which I have sadly) > in -next: > > http://kernelci.org/boot/all/job/broonie-regulator/kernel/v4.4-rc3-17-ga6498dba8869/ > > which were bisected by Tyler to this: > > http://hastebin.com/noluripepa.sm > > I'm not seeing anything obvious in the code at the minute having looked > for several seconds, I'll have a proper look later today all being well. > Ok, sorry about the double screwup and thanks for looking into it. Arnd ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2015-12-01 13:21 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-11-27 13:46 [PATCH, RESEND] regulator: core: fix regulator_lock_supply regression Arnd Bergmann 2015-12-01 13:16 ` Mark Brown 2015-12-01 13:21 ` Arnd Bergmann
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox