2023-11-30 13:58:28

by Bastien Nocera

[permalink] [raw]
Subject: [RESEND PATCH v2] Bluetooth: Fix bogus check for re-auth no supported with non-ssp

From: Luiz Augusto von Dentz <[email protected]>

This reverts 19f8def031bfa50c579149b200bfeeb919727b27
"Bluetooth: Fix auth_complete_evt for legacy units" which seems to be
working around a bug on a broken controller rather then any limitation
imposed by the Bluetooth spec, in fact if there ws not possible to
re-auth the command shall fail not succeed.

Signed-off-by: Luiz Augusto von Dentz <[email protected]>
---
include/net/bluetooth/hci_core.h | 1 -
net/bluetooth/hci_conn.c | 8 +++-----
net/bluetooth/hci_event.c | 11 ++---------
3 files changed, 5 insertions(+), 15 deletions(-)

diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h
index 20988623c5cc..878622a4dde8 100644
--- a/include/net/bluetooth/hci_core.h
+++ b/include/net/bluetooth/hci_core.h
@@ -952,7 +952,6 @@ void hci_inquiry_cache_flush(struct hci_dev *hdev);
/* ----- HCI Connections ----- */
enum {
HCI_CONN_AUTH_PEND,
- HCI_CONN_REAUTH_PEND,
HCI_CONN_ENCRYPT_PEND,
HCI_CONN_RSWITCH_PEND,
HCI_CONN_MODE_CHANGE_PEND,
diff --git a/net/bluetooth/hci_conn.c b/net/bluetooth/hci_conn.c
index 2cee330188ce..d01db89fcb46 100644
--- a/net/bluetooth/hci_conn.c
+++ b/net/bluetooth/hci_conn.c
@@ -2421,12 +2421,10 @@ static int hci_conn_auth(struct hci_conn *conn, __u8 sec_level, __u8 auth_type)
hci_send_cmd(conn->hdev, HCI_OP_AUTH_REQUESTED,
sizeof(cp), &cp);

- /* If we're already encrypted set the REAUTH_PEND flag,
- * otherwise set the ENCRYPT_PEND.
+ /* Set the ENCRYPT_PEND to trigger encryption after
+ * authentication.
*/
- if (test_bit(HCI_CONN_ENCRYPT, &conn->flags))
- set_bit(HCI_CONN_REAUTH_PEND, &conn->flags);
- else
+ if (!test_bit(HCI_CONN_ENCRYPT, &conn->flags))
set_bit(HCI_CONN_ENCRYPT_PEND, &conn->flags);
}

diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c
index 0849e0dafa95..da3e9226c037 100644
--- a/net/bluetooth/hci_event.c
+++ b/net/bluetooth/hci_event.c
@@ -3484,14 +3484,8 @@ static void hci_auth_complete_evt(struct hci_dev *hdev, void *data,

if (!ev->status) {
clear_bit(HCI_CONN_AUTH_FAILURE, &conn->flags);
-
- if (!hci_conn_ssp_enabled(conn) &&
- test_bit(HCI_CONN_REAUTH_PEND, &conn->flags)) {
- bt_dev_info(hdev, "re-auth of legacy device is not possible.");
- } else {
- set_bit(HCI_CONN_AUTH, &conn->flags);
- conn->sec_level = conn->pending_sec_level;
- }
+ set_bit(HCI_CONN_AUTH, &conn->flags);
+ conn->sec_level = conn->pending_sec_level;
} else {
if (ev->status == HCI_ERROR_PIN_OR_KEY_MISSING)
set_bit(HCI_CONN_AUTH_FAILURE, &conn->flags);
@@ -3500,7 +3494,6 @@ static void hci_auth_complete_evt(struct hci_dev *hdev, void *data,
}

clear_bit(HCI_CONN_AUTH_PEND, &conn->flags);
- clear_bit(HCI_CONN_REAUTH_PEND, &conn->flags);

if (conn->state == BT_CONFIG) {
if (!ev->status && hci_conn_ssp_enabled(conn)) {
--
2.43.0



2023-11-30 14:32:30

by bluez.test.bot

[permalink] [raw]
Subject: RE: [RESEND,v2] Bluetooth: Fix bogus check for re-auth no supported with non-ssp

This is automated email and please do not reply to this email!

Dear submitter,

Thank you for submitting the patches to the linux bluetooth mailing list.
This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=805623

---Test result---

Test Summary:
CheckPatch PASS 0.78 seconds
GitLint PASS 0.21 seconds
SubjectPrefix PASS 0.07 seconds
BuildKernel PASS 27.59 seconds
CheckAllWarning PASS 29.98 seconds
CheckSparse WARNING 35.35 seconds
CheckSmatch WARNING 98.09 seconds
BuildKernel32 PASS 28.17 seconds
TestRunnerSetup PASS 418.28 seconds
TestRunner_l2cap-tester PASS 22.81 seconds
TestRunner_iso-tester PASS 46.71 seconds
TestRunner_bnep-tester PASS 6.94 seconds
TestRunner_mgmt-tester FAIL 167.28 seconds
TestRunner_rfcomm-tester PASS 11.32 seconds
TestRunner_sco-tester PASS 14.67 seconds
TestRunner_ioctl-tester PASS 12.43 seconds
TestRunner_mesh-tester PASS 8.86 seconds
TestRunner_smp-tester PASS 9.83 seconds
TestRunner_userchan-tester PASS 7.40 seconds
IncrementalBuild PASS 25.62 seconds

Details
##############################
Test: CheckSparse - WARNING
Desc: Run sparse tool with linux kernel
Output:
net/bluetooth/hci_event.c: note: in included file (through include/net/bluetooth/hci_core.h):
##############################
Test: CheckSmatch - WARNING
Desc: Run smatch tool with source
Output:
net/bluetooth/hci_event.c: note: in included file (through include/net/bluetooth/hci_core.h):
##############################
Test: TestRunner_mgmt-tester - FAIL
Desc: Run mgmt-tester with test-runner
Output:
Total: 497, Passed: 496 (99.8%), Failed: 1, Not Run: 0

Failed Test Cases
LL Privacy - Start Discovery 2 (Disable RL) Failed 0.296 seconds


---
Regards,
Linux Bluetooth

2023-12-06 14:50:41

by patchwork-bot+bluetooth

[permalink] [raw]
Subject: Re: [RESEND PATCH v2] Bluetooth: Fix bogus check for re-auth no supported with non-ssp

Hello:

This patch was applied to bluetooth/bluetooth-next.git (master)
by Luiz Augusto von Dentz <[email protected]>:

On Thu, 30 Nov 2023 14:58:03 +0100 you wrote:
> From: Luiz Augusto von Dentz <[email protected]>
>
> This reverts 19f8def031bfa50c579149b200bfeeb919727b27
> "Bluetooth: Fix auth_complete_evt for legacy units" which seems to be
> working around a bug on a broken controller rather then any limitation
> imposed by the Bluetooth spec, in fact if there ws not possible to
> re-auth the command shall fail not succeed.
>
> [...]

Here is the summary with links:
- [RESEND,v2] Bluetooth: Fix bogus check for re-auth no supported with non-ssp
https://git.kernel.org/bluetooth/bluetooth-next/c/b640347284c0

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html