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

Commit 5eaaa5e9 authored by Yu Zhao's avatar Yu Zhao Committed by Greg Kroah-Hartman
Browse files

regulator: fix crash caused by null driver data



commit fb6de923ca3358a91525552b4907d4cb38730bdd upstream.

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
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent b6adc1f2
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -4115,13 +4115,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 */