Bluetooth: Fix update of own_addr_type if ll_privacy supported
authorSathish Narasimman <nsathish41@gmail.com>
Fri, 25 Sep 2020 12:32:15 +0000 (18:02 +0530)
committerMarcel Holtmann <marcel@holtmann.org>
Fri, 25 Sep 2020 15:53:59 +0000 (17:53 +0200)
During system powercycle when trying to get the random address
hci_get_random_address set own_addr_type as 0x01. In which if we enable
ll_privacy it is supposed to be 0x03.

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

index d2b06f5c93804f6ca2aee351979e6f106f013788..6f12bab4d2fa6b4c42789f48173fddc27bfec806 100644 (file)
@@ -1885,7 +1885,13 @@ int hci_get_random_address(struct hci_dev *hdev, bool require_privacy,
        if (use_rpa) {
                int to;
 
-               *own_addr_type = ADDR_LE_DEV_RANDOM;
+               /* If Controller supports LL Privacy use own address type is
+                * 0x03
+                */
+               if (use_ll_privacy(hdev))
+                       *own_addr_type = ADDR_LE_DEV_RANDOM_RESOLVED;
+               else
+                       *own_addr_type = ADDR_LE_DEV_RANDOM;
 
                if (adv_instance) {
                        if (!adv_instance->rpa_expired &&