summaryrefslogtreecommitdiff
path: root/drivers/bluetooth
diff options
context:
space:
mode:
authorJohan Hovold <johan+linaro@kernel.org>2024-04-22 15:57:48 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2024-05-02 16:32:43 +0200
commit67459f1a707aae6d590454de07956c2752e21ea4 (patch)
treefd987e1b473158b0cca6a19603287d5e89e1eafb /drivers/bluetooth
parent6b47cdeb786c38e4174319218db3fa6d7b4bba88 (diff)
downloadlinux-67459f1a707aae6d590454de07956c2752e21ea4.tar.gz
linux-67459f1a707aae6d590454de07956c2752e21ea4.tar.bz2
linux-67459f1a707aae6d590454de07956c2752e21ea4.zip
Bluetooth: qca: fix NULL-deref on non-serdev setup
commit 7ddb9de6af0f1c71147785b12fd7c8ec3f06cc86 upstream. Qualcomm ROME controllers can be registered from the Bluetooth line discipline and in this case the HCI UART serdev pointer is NULL. Add the missing sanity check to prevent a NULL-pointer dereference when setup() is called for a non-serdev controller. Fixes: e9b3e5b8c657 ("Bluetooth: hci_qca: only assign wakeup with serial port support") Cc: stable@vger.kernel.org # 6.2 Cc: Zhengping Jiang <jiangzp@google.com> Signed-off-by: Johan Hovold <johan+linaro@kernel.org> Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/bluetooth')
-rw-r--r--drivers/bluetooth/hci_qca.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c
index 35bd54b8683b..410f146e3f67 100644
--- a/drivers/bluetooth/hci_qca.c
+++ b/drivers/bluetooth/hci_qca.c
@@ -1938,8 +1938,10 @@ retry:
qca_debugfs_init(hdev);
hu->hdev->hw_error = qca_hw_error;
hu->hdev->cmd_timeout = qca_cmd_timeout;
- if (device_can_wakeup(hu->serdev->ctrl->dev.parent))
- hu->hdev->wakeup = qca_wakeup;
+ if (hu->serdev) {
+ if (device_can_wakeup(hu->serdev->ctrl->dev.parent))
+ hu->hdev->wakeup = qca_wakeup;
+ }
} else if (ret == -ENOENT) {
/* No patch/nvm-config found, run with original fw/config */
set_bit(QCA_ROM_FW, &qca->flags);