Bluetooth: btrtl: Add null check in setup
authorAbhishek Pandit-Subedi <abhishekpandit@chromium.org>
Wed, 6 Jan 2021 04:58:58 +0000 (20:58 -0800)
committerMarcel Holtmann <marcel@holtmann.org>
Wed, 6 Jan 2021 07:40:37 +0000 (08:40 +0100)
btrtl_dev->ic_info is only available from the controller on cold boot
(the lmp subversion matches the device model and this is used to look up
the ic_info). On warm boots (firmware already loaded),
btrtl_dev->ic_info is null.

Fixes: 05672a2c14a4 (Bluetooth: btrtl: Enable central-peripheral role)
Signed-off-by: Abhishek Pandit-Subedi <abhishekpandit@chromium.org>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
drivers/bluetooth/btrtl.c

index 1abf6a4..24f03a1 100644 (file)
@@ -719,6 +719,9 @@ int btrtl_setup_realtek(struct hci_dev *hdev)
         */
        set_bit(HCI_QUIRK_SIMULTANEOUS_DISCOVERY, &hdev->quirks);
 
+       if (!btrtl_dev->ic_info)
+               goto done;
+
        /* Enable central-peripheral role (able to create new connections with
         * an existing connection in slave role).
         */
@@ -731,6 +734,7 @@ int btrtl_setup_realtek(struct hci_dev *hdev)
                break;
        }
 
+done:
        btrtl_free(btrtl_dev);
        return ret;
 }