summary refs log tree commit diff
path: root/net/bluetooth
diff options
context:
space:
mode:
authorSathish Narasimman <nsathish41@gmail.com>2020-09-25 18:02:15 +0530
committerMarcel Holtmann <marcel@holtmann.org>2020-09-25 17:53:59 +0200
commitc0ee0644df5da3f877a53e402d03634080d6e766 (patch)
treeeb41b31419e3b8f58d7df9a8fd1328a2981d92b6 /net/bluetooth
parenta46b7ed4d52d09bd6c7ab53b2217d04fc2f02c65 (diff)
downloadlinux-c0ee0644df5da3f877a53e402d03634080d6e766.tar.gz
Bluetooth: Fix update of own_addr_type if ll_privacy supported
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>
Diffstat (limited to 'net/bluetooth')
-rw-r--r--net/bluetooth/hci_request.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/net/bluetooth/hci_request.c b/net/bluetooth/hci_request.c
index d2b06f5c9380..6f12bab4d2fa 100644
--- a/net/bluetooth/hci_request.c
+++ b/net/bluetooth/hci_request.c
@@ -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 &&