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
This commit is contained in:
parent
3edd79cf5a
commit
fb6de923ca
|
@ -4395,13 +4395,13 @@ regulator_register(const struct regulator_desc *regulator_desc,
|
|||
!rdev->desc->fixed_uV)
|
||||
rdev->is_switch = true;
|
||||
|
||||
dev_set_drvdata(&rdev->dev, rdev);
|
||||
ret = device_register(&rdev->dev);
|
||||
if (ret != 0) {
|
||||
put_device(&rdev->dev);
|
||||
goto unset_supplies;
|
||||
}
|
||||
|
||||
dev_set_drvdata(&rdev->dev, rdev);
|
||||
rdev_init_debugfs(rdev);
|
||||
|
||||
/* try to resolve regulators supply since a new one was registered */
|
||||
|
|
Loading…
Reference in New Issue