Merge tag 'regulator-fix-v6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git...
authorLinus Torvalds <torvalds@linux-foundation.org>
Fri, 23 Dec 2022 22:38:00 +0000 (14:38 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 23 Dec 2022 22:38:00 +0000 (14:38 -0800)
Pull regulator fixes from Mark Brown:
 "Two core fixes here, one for a long standing race which some Qualcomm
  systems have started triggering with their UFS driver and another
  fixing a problem with supply lookup introduced by the fixes for devm
  related use after free issues that were introduced in this merge
  window"

* tag 'regulator-fix-v6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator:
  regulator: core: fix deadlock on regulator enable
  regulator: core: Fix resolve supply lookup issue

drivers/regulator/core.c

index ace4ecc6d7c23253aa9dff82324d8dde7c302442..ae69e493913da2ec1782c8acf0f88386e407ed46 100644 (file)
@@ -1002,7 +1002,7 @@ static int drms_uA_update(struct regulator_dev *rdev)
                /* get input voltage */
                input_uV = 0;
                if (rdev->supply)
-                       input_uV = regulator_get_voltage(rdev->supply);
+                       input_uV = regulator_get_voltage_rdev(rdev->supply->rdev);
                if (input_uV <= 0)
                        input_uV = rdev->constraints->input_uV;
 
@@ -5540,7 +5540,7 @@ regulator_register(struct device *dev,
 
        /* register with sysfs */
        rdev->dev.class = &regulator_class;
-       rdev->dev.parent = dev;
+       rdev->dev.parent = config->dev;
        dev_set_name(&rdev->dev, "regulator.%lu",
                    (unsigned long) atomic_inc_return(&regulator_no));
        dev_set_drvdata(&rdev->dev, rdev);