Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1768514e authored by Mark Brown's avatar Mark Brown
Browse files

regulator: core: Reduce rdev locking region when releasing regulator



When we release a regulator we need to remove references to it from the
rdev which means locking the rdev.  Currently we also free resources
associated with the regulator inside the rdev lock but there is no need
to do this, we can reduce the region the lock is held by restricting it
to just actions that affect the rdev.

Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 7cd71c3b
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -1601,14 +1601,15 @@ static void _regulator_put(struct regulator *regulator)
	if (regulator->dev)
		sysfs_remove_link(&rdev->dev.kobj, regulator->supply_name);
	mutex_lock(&rdev->mutex);
	kfree(regulator->supply_name);
	list_del(&regulator->list);
	kfree(regulator);

	rdev->open_count--;
	rdev->exclusive = 0;
	mutex_unlock(&rdev->mutex);

	kfree(regulator->supply_name);
	kfree(regulator);

	module_put(rdev->owner);
}