regulator: don't require mutex for regulator_notifier_call_chain()
authorMichał Mirosław <mirq-linux@rere.qmqm.pl>
Mon, 10 Aug 2020 04:33:32 +0000 (06:33 +0200)
committerMark Brown <broonie@kernel.org>
Mon, 7 Sep 2020 17:35:24 +0000 (18:35 +0100)
Since 3801b86aa482 ("regulator: Refactor supply implementation
to work as regular consumers") we no longer cascade notifications
and so notifier head's built-in rwsem is enough to protect the
notifier chain. Remove the requirement to fix one case where
rdev->mutex might be forced to be taken recursively.

Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
Reviewed-by: Dmitry Osipenko <digetx@gmail.com>
Link: https://lore.kernel.org/r/5a0da9017c69a4dbc3f9b50f44476fce80a73387.1597032945.git.mirq-linux@rere.qmqm.pl
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/regulator/core.c

index 07edbd8..2ed0351 100644 (file)
@@ -4725,14 +4725,11 @@ EXPORT_SYMBOL_GPL(regulator_bulk_free);
  * @data: callback-specific data.
  *
  * Called by regulator drivers to notify clients a regulator event has
- * occurred. We also notify regulator clients downstream.
- * Note lock must be held by caller.
+ * occurred.
  */
 int regulator_notifier_call_chain(struct regulator_dev *rdev,
                                  unsigned long event, void *data)
 {
-       lockdep_assert_held_once(&rdev->mutex.base);
-
        _notifier_call_chain(rdev, event, data);
        return NOTIFY_DONE;