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

Unverified Commit fb6de923 authored by Yu Zhao's avatar Yu Zhao Committed by Mark Brown
Browse files

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: default avatarYu Zhao <yuzhao@google.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
Cc: stable@vger.kernel.org
parent 3edd79cf
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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 */