Skip to content

Commit fb6de92

Browse files
yuzhaogooglebroonie
authored andcommitted
regulator: fix crash caused by null driver data
dev_set_drvdata() needs to be called before device_register() exposes device to userspace. Otherwise kernel crashes after it gets null pointer from dev_get_drvdata() when userspace tries to access sysfs entries. [Removed backtrace for length -- broonie] Signed-off-by: Yu Zhao <yuzhao@google.com> Signed-off-by: Mark Brown <broonie@kernel.org> Cc: stable@vger.kernel.org
1 parent 3edd79c commit fb6de92

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

drivers/regulator/core.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4395,13 +4395,13 @@ regulator_register(const struct regulator_desc *regulator_desc,
43954395
!rdev->desc->fixed_uV)
43964396
rdev->is_switch = true;
43974397

4398+
dev_set_drvdata(&rdev->dev, rdev);
43984399
ret = device_register(&rdev->dev);
43994400
if (ret != 0) {
44004401
put_device(&rdev->dev);
44014402
goto unset_supplies;
44024403
}
44034404

4404-
dev_set_drvdata(&rdev->dev, rdev);
44054405
rdev_init_debugfs(rdev);
44064406

44074407
/* try to resolve regulators supply since a new one was registered */

0 commit comments

Comments
 (0)