Messages in this thread Patch in this message | | | From | Javier Martinez Canillas <> | Subject | [PATCH v2 1/2] regulator: core: Increase refcount for regulator supply's module | Date | Wed, 15 Jul 2015 16:10:28 +0200 |
| |
When a regulator is unregistered with regulator_unregister(), a call to regulator_put() is made for its input supply if there is one. This does a module_put() to decrement the refcount of the module that owns the supply but there isn't a corresponding try_module_get() in set_supply() to make the calls balanced.
Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com> ---
Changes in v2: None
drivers/regulator/core.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c index 68b616580533..1dd2024b46b3 100644 --- a/drivers/regulator/core.c +++ b/drivers/regulator/core.c @@ -1109,6 +1109,9 @@ static int set_supply(struct regulator_dev *rdev, rdev_info(rdev, "supplied by %s\n", rdev_get_name(supply_rdev)); + if (!try_module_get(supply_rdev->owner)) + return -ENODEV; + rdev->supply = create_regulator(supply_rdev, &rdev->dev, "SUPPLY"); if (rdev->supply == NULL) { err = -ENOMEM; -- 2.4.3
| |