UPSTREAM: regulator: core: remove lockdep assert from suspend_prepare
authorTero Kristo <t-kristo@ti.com>
Mon, 18 Apr 2016 11:49:53 +0000 (14:49 +0300)
committerHuang, Tao <huangtao@rock-chips.com>
Thu, 22 Sep 2016 12:12:28 +0000 (20:12 +0800)
suspend_prepare can be called during regulator init time also, where
the mutex is not locked yet. This causes a false lockdep warning.
To avoid the problem, remove the lockdep assertion from the function
causing the issue. An alternative would be to lock the mutex during
init, but this would cause other problems (some APIs used during init
will attempt to lock the mutex also, causing deadlock.)

Change-Id: I4a4367f3ebc9c7a00d6a08b547f2cebecd600483
Signed-off-by: Tero Kristo <t-kristo@ti.com>
Reported-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
(cherry picked from commit 07c5c3ad98926dc15d31aa86de62fd4170f2a745)

drivers/regulator/core.c

index 732ac71b82cdd5981454dec04da6ad2cad6c4cba..a63aa1c9bb12260c6d74fef64e09d7c6d9f7d3dc 100644 (file)
@@ -808,8 +808,6 @@ static int suspend_set_state(struct regulator_dev *rdev,
 /* locks held by caller */
 static int suspend_prepare(struct regulator_dev *rdev, suspend_state_t state)
 {
-       lockdep_assert_held_once(&rdev->mutex);
-
        if (!rdev->constraints)
                return -EINVAL;