Commit e1d28be2 authored by Bartosz Golaszewski's avatar Bartosz Golaszewski Committed by Luiz Augusto von Dentz

Bluetooth: hci_qca: fix a NULL-pointer derefence at shutdown

Unlike qca_regulator_init(), qca_power_shutdown() may be called for
QCA_ROME which does not have qcadev->bt_power assigned. Add a
NULL-pointer check before dereferencing the struct qca_power pointer.

Fixes: eba17187 ("Bluetooth: hci_qca: make pwrseq calls the default if available")
Reported-by: default avatarDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Closes: https://lore.kernel.org/linux-bluetooth/su3wp6s44hrxf4ijvsdfzbvv4unu4ycb7kkvwbx6ltdafkldir@4g7ydqm2ap5j/Signed-off-by: default avatarBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Signed-off-by: default avatarLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
parent f3660957
...@@ -2160,7 +2160,7 @@ static void qca_power_shutdown(struct hci_uart *hu) ...@@ -2160,7 +2160,7 @@ static void qca_power_shutdown(struct hci_uart *hu)
qcadev = serdev_device_get_drvdata(hu->serdev); qcadev = serdev_device_get_drvdata(hu->serdev);
power = qcadev->bt_power; power = qcadev->bt_power;
if (power->pwrseq) { if (power && power->pwrseq) {
pwrseq_power_off(power->pwrseq); pwrseq_power_off(power->pwrseq);
set_bit(QCA_BT_OFF, &qca->flags); set_bit(QCA_BT_OFF, &qca->flags);
return; return;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment