From: Johan Hedberg <johan.hedberg@intel.com>
Date: Mon, 24 Feb 2014 09:10:30 +0000 (+0200)
Subject: Bluetooth: Enable RPA resolving if mgmt_set_privacy is called
X-Git-Tag: firefly_0821_release~176^2~3540^2~11^2~7^2~45^2~137
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=c21c0ea07b30eb670be96e67199d1f984512ef96;p=firefly-linux-kernel-4.4.55.git

Bluetooth: Enable RPA resolving if mgmt_set_privacy is called

A user space that supports the Set Privacy command is also expected to
be able to handle New IRK events. Therefore, set the HCI_RPA_RESOLVING
flag whenever the Set Privacy command is received.

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
---

diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c
index 53b9408af16b..9865e523df20 100644
--- a/net/bluetooth/mgmt.c
+++ b/net/bluetooth/mgmt.c
@@ -4257,6 +4257,11 @@ static int set_privacy(struct sock *sk, struct hci_dev *hdev, void *cp_data,
 
 	hci_dev_lock(hdev);
 
+	/* If user space supports this command it is also expected to
+	 * handle IRKs. Therefore, set the HCI_RPA_RESOLVING flag.
+	 */
+	set_bit(HCI_RPA_RESOLVING, &hdev->dev_flags);
+
 	if (cp->privacy) {
 		changed = !test_and_set_bit(HCI_PRIVACY, &hdev->dev_flags);
 		memcpy(hdev->irk, cp->irk, sizeof(hdev->irk));