aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/bcm27xx/patches-5.10/950-0496-Revert-Bluetooth-Always-request-for-user-confirmatio.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/bcm27xx/patches-5.10/950-0496-Revert-Bluetooth-Always-request-for-user-confirmatio.patch')
-rw-r--r--target/linux/bcm27xx/patches-5.10/950-0496-Revert-Bluetooth-Always-request-for-user-confirmatio.patch43
1 files changed, 43 insertions, 0 deletions
diff --git a/target/linux/bcm27xx/patches-5.10/950-0496-Revert-Bluetooth-Always-request-for-user-confirmatio.patch b/target/linux/bcm27xx/patches-5.10/950-0496-Revert-Bluetooth-Always-request-for-user-confirmatio.patch
new file mode 100644
index 0000000000..04c33ad904
--- /dev/null
+++ b/target/linux/bcm27xx/patches-5.10/950-0496-Revert-Bluetooth-Always-request-for-user-confirmatio.patch
@@ -0,0 +1,43 @@
+From e067981f7f882c787df637561fde847f197e9e00 Mon Sep 17 00:00:00 2001
+From: Phil Elwell <phil@raspberrypi.com>
+Date: Mon, 1 Mar 2021 09:14:35 +0000
+Subject: [PATCH] Revert "Bluetooth: Always request for user
+ confirmation for Just Works"
+
+This reverts commit 92516cd97fd4d8ad5b1421a0d51771044f453a5f.
+
+Thi commit "Bluetooth: Always request for user confirmation for Just
+Works" prevents BLE devices pairing in (at least) the Raspberry Pi OS
+GUI. After reverting it, pairing works again.
+
+If another solution to the problem is found then this reversion will
+be removed.
+
+See: https://github.com/raspberrypi/linux/issues/4139
+
+Signed-off-by: Phil Elwell <phil@raspberrypi.com>
+---
+ net/bluetooth/smp.c | 11 ++---------
+ 1 file changed, 2 insertions(+), 9 deletions(-)
+
+--- a/net/bluetooth/smp.c
++++ b/net/bluetooth/smp.c
+@@ -883,16 +883,9 @@ static int tk_request(struct l2cap_conn
+ hcon->io_capability == HCI_IO_NO_INPUT_OUTPUT)
+ smp->method = JUST_WORKS;
+
+- /* If Just Works, Continue with Zero TK and ask user-space for
+- * confirmation */
++ /* If Just Works, Continue with Zero TK */
+ if (smp->method == JUST_WORKS) {
+- ret = mgmt_user_confirm_request(hcon->hdev, &hcon->dst,
+- hcon->type,
+- hcon->dst_type,
+- passkey, 1);
+- if (ret)
+- return ret;
+- set_bit(SMP_FLAG_WAIT_USER, &smp->flags);
++ set_bit(SMP_FLAG_TK_VALID, &smp->flags);
+ return 0;
+ }
+