summaryrefslogtreecommitdiffstats
path: root/Bluetooth-hci_core-Fix-attempting-to-set-RPA-timeout-when-unsupported.patch
diff options
context:
space:
mode:
Diffstat (limited to 'Bluetooth-hci_core-Fix-attempting-to-set-RPA-timeout-when-unsupported.patch')
-rw-r--r--Bluetooth-hci_core-Fix-attempting-to-set-RPA-timeout-when-unsupported.patch56
1 files changed, 56 insertions, 0 deletions
diff --git a/Bluetooth-hci_core-Fix-attempting-to-set-RPA-timeout-when-unsupported.patch b/Bluetooth-hci_core-Fix-attempting-to-set-RPA-timeout-when-unsupported.patch
new file mode 100644
index 000000000..f298a652e
--- /dev/null
+++ b/Bluetooth-hci_core-Fix-attempting-to-set-RPA-timeout-when-unsupported.patch
@@ -0,0 +1,56 @@
+From MAILER-DAEMON Thu Jan 7 13:40:23 2021
+From: Edward Vear <edwardvear@gmail.com>
+To: linux-bluetooth@vger.kernel.org
+Cc: edwardvear@gmail.com, marcel@holtmann.org, johan.hedberg@gmail.com, davem@davemloft.net, kuba@kernel.org
+Subject: [PATCH] Bluetooth: hci_core: Fix attempting to set RPA timeout when unsupported
+Date: Tue, 27 Oct 2020 00:02:03 -0700
+Message-Id: <20201027070203.13561-1-edwardvear@gmail.com>
+List-ID: <linux-bluetooth.vger.kernel.org>
+X-Mailing-List: linux-bluetooth@vger.kernel.org
+MIME-Version: 1.0
+Content-Type: text/plain; charset="utf-8"
+Content-Transfer-Encoding: 7bit
+
+During controller initialization, an LE Set RPA Timeout command is sent
+to the controller if supported. However, the value checked to determine
+if the command is supported is incorrect. Page 1921 of the Bluetooth
+Core Spec v5.2 shows that bit 2 of octet 35 of the Supported_Commands
+field corresponds to the LE Set RPA Timeout command, but currently
+bit 6 of octet 35 is checked. This patch checks the correct value
+instead.
+
+This issue led to the error seen in the following btmon output during
+initialization of an adapter (rtl8761b) and prevented initialization
+from completing.
+
+< HCI Command: LE Set Resolvable Private Address Timeout (0x08|0x002e) plen 2
+ Timeout: 900 seconds
+> HCI Event: Command Complete (0x0e) plen 4
+ LE Set Resolvable Private Address Timeout (0x08|0x002e) ncmd 2
+ Status: Unsupported Remote Feature / Unsupported LMP Feature (0x1a)
+= Close Index: 00:E0:4C:6B:E5:03
+
+The error did not appear when running with this patch.
+
+Signed-off-by: Edward Vear <edwardvear@gmail.com>
+---
+ net/bluetooth/hci_core.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
+index 502552d6e9af..c4aa2cbb9269 100644
+--- a/net/bluetooth/hci_core.c
++++ b/net/bluetooth/hci_core.c
+@@ -763,7 +763,7 @@ static int hci_init3_req(struct hci_request *req, unsigned long opt)
+ hci_req_add(req, HCI_OP_LE_CLEAR_RESOLV_LIST, 0, NULL);
+ }
+
+- if (hdev->commands[35] & 0x40) {
++ if (hdev->commands[35] & 0x04) {
+ __le16 rpa_timeout = cpu_to_le16(hdev->rpa_timeout);
+
+ /* Set RPA timeout */
+--
+2.29.1
+
+