2022-06-10 19:24:23

by Zhengping Jiang

[permalink] [raw]
Subject: [kernel PATCH v1 0/1] Fix refresh cached connection info


Get connection info will return error when using synchronous hci_sync
call to refresh the cached information when the data times out. This is
because the cmd->user_data was not set before the call, so it will fail
checking connection is still connected.

Changes in v1:
- Set connection data before calling hci_cmd_sync_queue

Zhengping Jiang (1):
Bluetooth: mgmt: Fix refresh cached connection info

net/bluetooth/mgmt.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)

--
2.36.1.476.g0c4daa206d-goog


2022-06-10 19:24:23

by Zhengping Jiang

[permalink] [raw]
Subject: [kernel PATCH v1 1/1] Bluetooth: mgmt: Fix refresh cached connection info

Set the connection data before calling get_conn_info_sync, so it can be
verified the connection is still connected, before refreshing cached
values.

Fixes: 47db6b42991e6 ("Bluetooth: hci_sync: Convert MGMT_OP_GET_CONN_INFO")
Signed-off-by: Zhengping Jiang <[email protected]>
---

Changes in v1:
- Set connection data before calling hci_cmd_sync_queue

net/bluetooth/mgmt.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c
index 74937a8346488..cfbea6fa04335 100644
--- a/net/bluetooth/mgmt.c
+++ b/net/bluetooth/mgmt.c
@@ -6828,11 +6828,14 @@ static int get_conn_info(struct sock *sk, struct hci_dev *hdev, void *data,

cmd = mgmt_pending_new(sk, MGMT_OP_GET_CONN_INFO, hdev, data,
len);
- if (!cmd)
+ if (!cmd) {
err = -ENOMEM;
- else
+ } else {
+ hci_conn_hold(conn);
+ cmd->user_data = hci_conn_get(conn);
err = hci_cmd_sync_queue(hdev, get_conn_info_sync,
cmd, get_conn_info_complete);
+ }

if (err < 0) {
mgmt_cmd_complete(sk, hdev->id, MGMT_OP_GET_CONN_INFO,
@@ -6844,9 +6847,6 @@ static int get_conn_info(struct sock *sk, struct hci_dev *hdev, void *data,
goto unlock;
}

- hci_conn_hold(conn);
- cmd->user_data = hci_conn_get(conn);
-
conn->conn_info_timestamp = jiffies;
} else {
/* Cache is valid, just reply with values cached in hci_conn */
--
2.36.1.476.g0c4daa206d-goog

2022-06-10 20:03:16

by bluez.test.bot

[permalink] [raw]
Subject: RE: Fix refresh cached connection info

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=649392

---Test result---

Test Summary:
CheckPatch PASS 1.31 seconds
GitLint PASS 0.76 seconds
SubjectPrefix PASS 0.65 seconds
BuildKernel PASS 31.71 seconds
BuildKernel32 PASS 27.44 seconds
Incremental Build with patchesPASS 37.83 seconds
TestRunner: Setup PASS 465.62 seconds
TestRunner: l2cap-tester PASS 16.97 seconds
TestRunner: bnep-tester PASS 5.81 seconds
TestRunner: mgmt-tester FAIL 103.03 seconds
TestRunner: rfcomm-tester PASS 9.15 seconds
TestRunner: sco-tester PASS 8.93 seconds
TestRunner: smp-tester PASS 8.98 seconds
TestRunner: userchan-tester PASS 5.99 seconds

Details
##############################
Test: TestRunner: mgmt-tester - FAIL - 103.03 seconds
Run test-runner with mgmt-tester
Total: 493, Passed: 491 (99.6%), Failed: 2, Not Run: 0

Failed Test Cases
Add Advertising - Success (Name+data+appear) Timed out 2.755 seconds
Add Ext Advertising - Success (Name+data+appear) Timed out 1.789 seconds



---
Regards,
Linux Bluetooth