diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c index e9a83f84adaf..9d4b03ba86dd 100644 --- a/drivers/regulator/core.c +++ b/drivers/regulator/core.c @@ -2877,6 +2877,8 @@ struct regulator_dev *regulator_register(struct regulator_desc *regulator_desc, unset_regulator_supplies(rdev); scrub: + if (rdev->supply) + regulator_put(rdev->supply); kfree(rdev->constraints); device_unregister(&rdev->dev); /* device core frees rdev */