diff options
author | Johan Hovold <[email protected]> | 2024-04-22 15:57:48 +0200 |
---|---|---|
committer | Luiz Augusto von Dentz <[email protected]> | 2024-04-24 16:26:19 -0400 |
commit | 7ddb9de6af0f1c71147785b12fd7c8ec3f06cc86 (patch) | |
tree | fa0ce76a75c5cecb6ea6af24e46f820f5db560eb | |
parent | 73e87c0a49fda31d7b589edccf4c72e924411371 (diff) |
Bluetooth: qca: fix NULL-deref on non-serdev setup
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: [email protected] # 6.2
Cc: Zhengping Jiang <[email protected]>
Signed-off-by: Johan Hovold <[email protected]>
Signed-off-by: Luiz Augusto von Dentz <[email protected]>
-rw-r--r-- | drivers/bluetooth/hci_qca.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c index 94c85f4fbf3b..b621a0a40ea4 100644 --- a/drivers/bluetooth/hci_qca.c +++ b/drivers/bluetooth/hci_qca.c @@ -1958,8 +1958,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); |