Bluetooth: Handle own address type change with HCI_ENABLE_LL_PRIVACY
authorSathish Narasimman <sathish.narasimman@intel.com>
Mon, 5 Apr 2021 14:30:23 +0000 (20:00 +0530)
committerMarcel Holtmann <marcel@holtmann.org>
Tue, 6 Apr 2021 08:47:45 +0000 (10:47 +0200)
own_address_type has to changed to 0x02 and 0x03 only when
HCI_ENABLE_LL_PRIVACY flag is set.

Signed-off-by: Sathish Narasimman <sathish.narasimman@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
net/bluetooth/hci_request.c

index 5b4eb87..0d78122 100644 (file)
@@ -2043,7 +2043,8 @@ int hci_get_random_address(struct hci_dev *hdev, bool require_privacy,
                /* If Controller supports LL Privacy use own address type is
                 * 0x03
                 */
-               if (use_ll_privacy(hdev))
+               if (use_ll_privacy(hdev) &&
+                   hci_dev_test_flag(hdev, HCI_ENABLE_LL_PRIVACY))
                        *own_addr_type = ADDR_LE_DEV_RANDOM_RESOLVED;
                else
                        *own_addr_type = ADDR_LE_DEV_RANDOM;
@@ -2517,7 +2518,8 @@ int hci_update_random_address(struct hci_request *req, bool require_privacy,
                /* If Controller supports LL Privacy use own address type is
                 * 0x03
                 */
-               if (use_ll_privacy(hdev))
+               if (use_ll_privacy(hdev) &&
+                   hci_dev_test_flag(hdev, HCI_ENABLE_LL_PRIVACY))
                        *own_addr_type = ADDR_LE_DEV_RANDOM_RESOLVED;
                else
                        *own_addr_type = ADDR_LE_DEV_RANDOM;