* [PATCH v1 1/3] Bluetooth: hci_sync: Fix scan state after PA Sync has been established
@ 2025-07-28 17:58 Luiz Augusto von Dentz
2025-07-28 17:58 ` [PATCH v1 2/3] Bluetooth: ISO: Fix getname not returning broadcast fields Luiz Augusto von Dentz
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Luiz Augusto von Dentz @ 2025-07-28 17:58 UTC (permalink / raw)
To: linux-bluetooth
From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Passive scanning is used to program the address of the peer to be
synchronized, so once HCI_EV_LE_PA_SYNC_ESTABLISHED is received it
needs to be updated after clearing HCI_PA_SYNC then call
hci_update_passive_scan_sync to return it to its original state.
Fixes: 6d0417e4e1cf ("Bluetooth: hci_conn: Fix not setting conn_timeout for Broadcast Receiver")
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
---
net/bluetooth/hci_sync.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/net/bluetooth/hci_sync.c b/net/bluetooth/hci_sync.c
index 2b4f21fbf9c1..ae165e693533 100644
--- a/net/bluetooth/hci_sync.c
+++ b/net/bluetooth/hci_sync.c
@@ -6985,8 +6985,6 @@ static void create_pa_complete(struct hci_dev *hdev, void *data, int err)
hci_dev_lock(hdev);
- hci_dev_clear_flag(hdev, HCI_PA_SYNC);
-
if (!hci_conn_valid(hdev, conn))
clear_bit(HCI_CONN_CREATE_PA_SYNC, &conn->flags);
@@ -7080,6 +7078,11 @@ static int hci_le_pa_create_sync(struct hci_dev *hdev, void *data)
__hci_cmd_sync_status(hdev, HCI_OP_LE_PA_CREATE_SYNC_CANCEL,
0, NULL, HCI_CMD_TIMEOUT);
+ hci_dev_clear_flag(hdev, HCI_PA_SYNC);
+
+ /* Update passive scan since HCI_PA_SYNC flag has been cleared */
+ hci_update_passive_scan_sync(hdev);
+
return err;
}
--
2.50.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH v1 2/3] Bluetooth: ISO: Fix getname not returning broadcast fields
2025-07-28 17:58 [PATCH v1 1/3] Bluetooth: hci_sync: Fix scan state after PA Sync has been established Luiz Augusto von Dentz
@ 2025-07-28 17:58 ` Luiz Augusto von Dentz
2025-07-28 17:58 ` [PATCH v1 3/3] Bluetooth: hci_conn: Fix running bis_cleanup for hci_conn->type PA_LINK Luiz Augusto von Dentz
2025-07-28 18:43 ` [v1,1/3] Bluetooth: hci_sync: Fix scan state after PA Sync has been established bluez.test.bot
2 siblings, 0 replies; 4+ messages in thread
From: Luiz Augusto von Dentz @ 2025-07-28 17:58 UTC (permalink / raw)
To: linux-bluetooth
From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
getname shall return iso_bc fields for both BIS_LINK and PA_LINK since
the likes of bluetoothd do use the getpeername to retrieve the SID both
when enumerating the broadcasters and when synchronizing.
Fixes: a7bcffc673de ("Bluetooth: Add PA_LINK to distinguish BIG sync and PA sync connections")
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
---
net/bluetooth/iso.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net/bluetooth/iso.c b/net/bluetooth/iso.c
index 7bd3aa0a6db9..eaffd25570e3 100644
--- a/net/bluetooth/iso.c
+++ b/net/bluetooth/iso.c
@@ -1347,7 +1347,7 @@ static int iso_sock_getname(struct socket *sock, struct sockaddr *addr,
bacpy(&sa->iso_bdaddr, &iso_pi(sk)->dst);
sa->iso_bdaddr_type = iso_pi(sk)->dst_type;
- if (hcon && hcon->type == BIS_LINK) {
+ if (hcon && (hcon->type == BIS_LINK || hcon->type == PA_LINK)) {
sa->iso_bc->bc_sid = iso_pi(sk)->bc_sid;
sa->iso_bc->bc_num_bis = iso_pi(sk)->bc_num_bis;
memcpy(sa->iso_bc->bc_bis, iso_pi(sk)->bc_bis,
--
2.50.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH v1 3/3] Bluetooth: hci_conn: Fix running bis_cleanup for hci_conn->type PA_LINK
2025-07-28 17:58 [PATCH v1 1/3] Bluetooth: hci_sync: Fix scan state after PA Sync has been established Luiz Augusto von Dentz
2025-07-28 17:58 ` [PATCH v1 2/3] Bluetooth: ISO: Fix getname not returning broadcast fields Luiz Augusto von Dentz
@ 2025-07-28 17:58 ` Luiz Augusto von Dentz
2025-07-28 18:43 ` [v1,1/3] Bluetooth: hci_sync: Fix scan state after PA Sync has been established bluez.test.bot
2 siblings, 0 replies; 4+ messages in thread
From: Luiz Augusto von Dentz @ 2025-07-28 17:58 UTC (permalink / raw)
To: linux-bluetooth
From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Connections with type of PA_LINK shall be considered temporary just to
track the lifetime of PA Sync setup, once the BIG Sync is established
and connection are created with BIS_LINK the existing PA_LINK
connection shall not longer use bis_cleanup otherwise it terminates the
PA Sync when that shall be left to BIS_LINK connection to do it.
Fixes: a7bcffc673de ("Bluetooth: Add PA_LINK to distinguish BIG sync and PA sync connections")
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
---
net/bluetooth/hci_conn.c | 12 +++++++++++-
net/bluetooth/hci_event.c | 7 ++++++-
2 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/net/bluetooth/hci_conn.c b/net/bluetooth/hci_conn.c
index 7d1e79f69cd1..f8b20b609a03 100644
--- a/net/bluetooth/hci_conn.c
+++ b/net/bluetooth/hci_conn.c
@@ -830,7 +830,17 @@ static void bis_cleanup(struct hci_conn *conn)
/* Check if ISO connection is a BIS and terminate advertising
* set and BIG if there are no other connections using it.
*/
- bis = hci_conn_hash_lookup_big(hdev, conn->iso_qos.bcast.big);
+ bis = hci_conn_hash_lookup_big_state(hdev,
+ conn->iso_qos.bcast.big,
+ BT_CONNECTED,
+ HCI_ROLE_MASTER);
+ if (bis)
+ return;
+
+ bis = hci_conn_hash_lookup_big_state(hdev,
+ conn->iso_qos.bcast.big,
+ BT_CONNECT,
+ HCI_ROLE_MASTER);
if (bis)
return;
diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c
index 8aa5039b975a..4f0a6116291e 100644
--- a/net/bluetooth/hci_event.c
+++ b/net/bluetooth/hci_event.c
@@ -6957,9 +6957,14 @@ static void hci_le_big_sync_established_evt(struct hci_dev *hdev, void *data,
continue;
}
- if (ev->status != 0x42)
+ if (ev->status != 0x42) {
/* Mark PA sync as established */
set_bit(HCI_CONN_PA_SYNC, &bis->flags);
+ /* Reset cleanup callback of PA Sync so it doesn't
+ * terminate the sync when deleting the connection.
+ */
+ conn->cleanup = NULL;
+ }
bis->sync_handle = conn->sync_handle;
bis->iso_qos.bcast.big = ev->handle;
--
2.50.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* RE: [v1,1/3] Bluetooth: hci_sync: Fix scan state after PA Sync has been established
2025-07-28 17:58 [PATCH v1 1/3] Bluetooth: hci_sync: Fix scan state after PA Sync has been established Luiz Augusto von Dentz
2025-07-28 17:58 ` [PATCH v1 2/3] Bluetooth: ISO: Fix getname not returning broadcast fields Luiz Augusto von Dentz
2025-07-28 17:58 ` [PATCH v1 3/3] Bluetooth: hci_conn: Fix running bis_cleanup for hci_conn->type PA_LINK Luiz Augusto von Dentz
@ 2025-07-28 18:43 ` bluez.test.bot
2 siblings, 0 replies; 4+ messages in thread
From: bluez.test.bot @ 2025-07-28 18:43 UTC (permalink / raw)
To: linux-bluetooth, luiz.dentz
[-- Attachment #1: Type: text/plain, Size: 2479 bytes --]
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=986502
---Test result---
Test Summary:
CheckPatch PENDING 0.39 seconds
GitLint PENDING 0.65 seconds
SubjectPrefix PASS 0.27 seconds
BuildKernel PASS 24.20 seconds
CheckAllWarning PASS 26.95 seconds
CheckSparse WARNING 30.03 seconds
BuildKernel32 PASS 24.57 seconds
TestRunnerSetup PASS 477.12 seconds
TestRunner_l2cap-tester PASS 24.91 seconds
TestRunner_iso-tester PASS 37.36 seconds
TestRunner_bnep-tester PASS 5.92 seconds
TestRunner_mgmt-tester PASS 128.67 seconds
TestRunner_rfcomm-tester PASS 9.28 seconds
TestRunner_sco-tester PASS 16.60 seconds
TestRunner_ioctl-tester PASS 10.04 seconds
TestRunner_mesh-tester FAIL 11.42 seconds
TestRunner_smp-tester FAIL 10.86 seconds
TestRunner_userchan-tester PASS 6.16 seconds
IncrementalBuild PENDING 1.01 seconds
Details
##############################
Test: CheckPatch - PENDING
Desc: Run checkpatch.pl script
Output:
##############################
Test: GitLint - PENDING
Desc: Run gitlint
Output:
##############################
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: TestRunner_mesh-tester - FAIL
Desc: Run mesh-tester with test-runner
Output:
Total: 10, Passed: 8 (80.0%), Failed: 2, Not Run: 0
Failed Test Cases
Mesh - Send cancel - 1 Timed out 2.088 seconds
Mesh - Send cancel - 2 Timed out 2.000 seconds
##############################
Test: TestRunner_smp-tester - FAIL
Desc: Run smp-tester with test-runner
Output:
WARNING: CPU: 0 PID: 51 at net/bluetooth/hci_conn.c:568 hci_conn_timeout+0x14e/0x190
Total: 8, Passed: 8 (100.0%), Failed: 0, Not Run: 0
##############################
Test: IncrementalBuild - PENDING
Desc: Incremental build with the patches in the series
Output:
---
Regards,
Linux Bluetooth
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2025-07-28 18:43 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-28 17:58 [PATCH v1 1/3] Bluetooth: hci_sync: Fix scan state after PA Sync has been established Luiz Augusto von Dentz
2025-07-28 17:58 ` [PATCH v1 2/3] Bluetooth: ISO: Fix getname not returning broadcast fields Luiz Augusto von Dentz
2025-07-28 17:58 ` [PATCH v1 3/3] Bluetooth: hci_conn: Fix running bis_cleanup for hci_conn->type PA_LINK Luiz Augusto von Dentz
2025-07-28 18:43 ` [v1,1/3] Bluetooth: hci_sync: Fix scan state after PA Sync has been established bluez.test.bot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.