mirror of
https://github.com/torvalds/linux.git
synced 2026-09-24 06:24:02 +02:00
power sequencing fixes for v7.3-rc4
- fix kconfig issue in pwrseq-thread-gpu - fix error path logic in pwrseq_unit_enable() - fix two NULL-pointer dereference bugs in power sequencing core -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEkeUTLeW1Rh17omX8BZ0uy/82hMMFAmqrtNgACgkQBZ0uy/82 hMOupg/+Psfi2riTDG4/j6pzCWlLmOnL3Rfh1QLWMwGRKM7XHC8yN8CUHQS8ub2O l+z8ZZgJ663noQTLkjGbt4uOXyywykNaDnwQqO1DebWba4WgovIU6rVAbzaBOBqk 0XlAr0mSUu2P75JpJwUS1X3VCJ08r44U4kd1NeseNMrtAPSobB4BLmgN68Iku/tY AJ439da77hdZCxLEJQef1NU56r7q8toXQpq4thHanUrM66WT78vXwpiPqWnFSOuk eQkM033zsq2oc8Olc7XYr01r0KsdyhQKrC+L4H6pIsdzlGOKfxM7fsTGiyw+vu3/ IY+aHX+B2D5Zl9jX5bvkoQrgDjkBHQROXHvpQNgnTRL9gpNNUb1gdGPJkntptJ5w NCF+xg0TCRzaQZ5iVtN7QFlFUpDq5PQKQGAbh32PjnItJSvdfwE/+2BAGP2rAKui mosOAyQ2bQNQyje3vWSg+6I72fKKizGfH1rrOIKY2tK9vdnq9MYHpG+2tFkSJ+KZ 3yviZidGMgWT5t2XfUXq8+ZjiaCIyqV7l1NBAbuAUxWf6RUtNX1mLblYJfEvGIsg 6CfGmYKdn1dWC4FIGBoyYPb2ZQ1hCwuxZtdLRl8ARVdoW+yfTpcZEVoBqbunUsf9 2JFrax/SSJhT35v8drSRaDSs8YTNU1NrD3U8mUJcezMN91ZlCXs= =RnVa -----END PGP SIGNATURE----- Merge tag 'pwrseq-fixes-for-v7.3-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux Pull power sequencing fixes from Bartosz Golaszewski: - fix kconfig issue in pwrseq-thread-gpu - fix error path logic in pwrseq_unit_enable() - fix two NULL-pointer dereference bugs in power sequencing core * tag 'pwrseq-fixes-for-v7.3-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux: power: sequencing: fix NULL-pointer dereference in pwrseq_device_register() power: sequencing: fix NULL-pointer dereference in pwrseq_unit_new() power: sequencing: don't call .post_enable() if pwrseq_unit_enable() failed power: sequencing: Fix build issue with COMPILE_TEST
This commit is contained in:
commit
f143ea21cf
|
|
@ -29,7 +29,8 @@ config POWER_SEQUENCING_QCOM_WCN
|
|||
|
||||
config POWER_SEQUENCING_TH1520_GPU
|
||||
tristate "T-HEAD TH1520 GPU power sequencing driver"
|
||||
depends on (ARCH_THEAD && AUXILIARY_BUS) || COMPILE_TEST
|
||||
depends on ARCH_THEAD || COMPILE_TEST
|
||||
select AUXILIARY_BUS
|
||||
help
|
||||
Say Y here to enable the power sequencing driver for the TH1520 SoC
|
||||
GPU. This driver handles the complex clock and reset sequence
|
||||
|
|
|
|||
|
|
@ -101,6 +101,7 @@ static struct pwrseq_unit *pwrseq_unit_new(const struct pwrseq_unit_data *data)
|
|||
}
|
||||
|
||||
kref_init(&unit->ref);
|
||||
INIT_LIST_HEAD(&unit->list);
|
||||
INIT_LIST_HEAD(&unit->deps);
|
||||
unit->enable = data->enable;
|
||||
unit->disable = data->disable;
|
||||
|
|
@ -504,10 +505,6 @@ pwrseq_device_register(const struct pwrseq_config *config)
|
|||
*/
|
||||
device_initialize(&pwrseq->dev);
|
||||
|
||||
ret = dev_set_name(&pwrseq->dev, "pwrseq.%d", pwrseq->id);
|
||||
if (ret)
|
||||
goto err_put_pwrseq;
|
||||
|
||||
pwrseq->owner = config->owner ?: THIS_MODULE;
|
||||
pwrseq->match = config->match;
|
||||
|
||||
|
|
@ -516,6 +513,10 @@ pwrseq_device_register(const struct pwrseq_config *config)
|
|||
INIT_LIST_HEAD(&pwrseq->targets);
|
||||
INIT_LIST_HEAD(&pwrseq->units);
|
||||
|
||||
ret = dev_set_name(&pwrseq->dev, "pwrseq.%d", pwrseq->id);
|
||||
if (ret)
|
||||
goto err_put_pwrseq;
|
||||
|
||||
ret = pwrseq_setup_targets(config->targets, pwrseq);
|
||||
if (ret)
|
||||
goto err_put_pwrseq;
|
||||
|
|
@ -912,6 +913,8 @@ int pwrseq_enable(struct pwrseq_desc *desc)
|
|||
if (!ret)
|
||||
desc->powered_on = true;
|
||||
}
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
if (target->post_enable) {
|
||||
ret = target->post_enable(pwrseq);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user