On Thu, Aug 06, 2015 at 04:11:42PM +0200, Tomeu Vizoso wrote: > This backtrace illustrates the situation described above: > > (regulator_register) from [<c05efe64>] > (devm_regulator_register+0x48/0x84) Please don't paste entire backtraces into commit messages, they are enormous and contain very little useful content - they just obscure actual information in the commit message. If you feel there's useful information in there just include edited highlights with only that. > +static int _regulator_enable(struct regulator *regulator, bool do_lock) > { > - int ret; > + struct regulator_dev *rdev = regulator->rdev; > + int ret = 0; > > - lockdep_assert_held_once(&rdev->mutex); > + if (regulator->always_on) > + return 0; > + > + if (rdev->supply) { > + ret = regulator_enable(rdev->supply); > + if (ret != 0) > + return ret; > + } > + > + if (do_lock) > + mutex_lock(&rdev->mutex); > + else > + lockdep_assert_held_once(&rdev->mutex); Eew. This do_lock stuff is *not* nice and going to be fragile. I'm not a fan, we need something better.
Attachment:
signature.asc
Description: Digital signature