* [PATCH BlueZ v2 1/5] emulator: Generate PA Sync Lost
@ 2025-11-07 18:54 Luiz Augusto von Dentz
2025-11-07 18:54 ` [PATCH BlueZ v2 2/5] bthost: Add support for terminating a BIG Luiz Augusto von Dentz
` (4 more replies)
0 siblings, 5 replies; 6+ messages in thread
From: Luiz Augusto von Dentz @ 2025-11-07 18:54 UTC (permalink / raw)
To: linux-bluetooth
From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This attempts to generate a PA Sync Lost whenever a PA is disabled and
there is a remote synced to it.
---
emulator/btdev.c | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)
diff --git a/emulator/btdev.c b/emulator/btdev.c
index 839b4941ca05..c133248b2c7d 100644
--- a/emulator/btdev.c
+++ b/emulator/btdev.c
@@ -116,10 +116,12 @@ struct le_ext_adv {
struct le_per_adv {
struct btdev *dev;
+ struct btdev *remote;
uint8_t addr_type;
uint8_t addr[6];
uint8_t sid;
uint16_t sync_handle;
+ struct queue *syncs;
};
struct le_big {
@@ -5514,6 +5516,7 @@ static void le_pa_sync_estabilished(struct btdev *dev, struct btdev *remote,
sync_handle++;
per_adv->sync_handle = sync_handle;
+ per_adv->remote = remote;
ev.handle = cpu_to_le16(per_adv->sync_handle);
ev.sid = per_adv->sid;
@@ -5527,6 +5530,24 @@ static void le_pa_sync_estabilished(struct btdev *dev, struct btdev *remote,
send_pa(dev, remote, 0, per_adv->sync_handle);
}
+static void le_pa_sync_lost(struct le_per_adv *pa)
+{
+ struct bt_hci_evt_le_per_sync_lost ev;
+
+ memset(&ev, 0, sizeof(ev));
+ ev.handle = cpu_to_le16(pa->sync_handle);
+ le_meta_event(pa->dev, BT_HCI_EVT_LE_PA_SYNC_LOST, &ev, sizeof(ev));
+ free(pa);
+}
+
+static bool match_remote(const void *data, const void *match_data)
+{
+ const struct le_per_adv *pa = data;
+ const struct btdev *remote = match_data;
+
+ return pa->remote == remote;
+}
+
static int cmd_set_pa_enable(struct btdev *dev, const void *data, uint8_t len)
{
const struct bt_hci_cmd_le_set_pa_enable *cmd = data;
@@ -5554,6 +5575,14 @@ static int cmd_set_pa_enable(struct btdev *dev, const void *data, uint8_t len)
UINT_TO_PTR(INV_HANDLE)))
le_pa_sync_estabilished(remote, dev,
BT_HCI_ERR_SUCCESS);
+ else if (!remote->le_pa_enable) {
+ struct le_per_adv *pa;
+
+ pa = queue_remove_if(remote->le_per_adv, match_remote,
+ dev);
+ if (pa)
+ le_pa_sync_lost(pa);
+ }
}
return 0;
--
2.51.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH BlueZ v2 2/5] bthost: Add support for terminating a BIG
2025-11-07 18:54 [PATCH BlueZ v2 1/5] emulator: Generate PA Sync Lost Luiz Augusto von Dentz
@ 2025-11-07 18:54 ` Luiz Augusto von Dentz
2025-11-07 18:54 ` [PATCH BlueZ v2 3/5] iso-tester: Add tests for checking proper handling of Sync Lost Luiz Augusto von Dentz
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Luiz Augusto von Dentz @ 2025-11-07 18:54 UTC (permalink / raw)
To: linux-bluetooth
From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This adds support for sending BT_HCI_CMD_LE_TERM_BIG via
bthost_terminate_big.
---
emulator/bthost.c | 11 +++++++++++
emulator/bthost.h | 1 +
2 files changed, 12 insertions(+)
diff --git a/emulator/bthost.c b/emulator/bthost.c
index faabbaa36a4a..9f9538d0dc2c 100644
--- a/emulator/bthost.c
+++ b/emulator/bthost.c
@@ -3780,6 +3780,17 @@ void bthost_create_big(struct bthost *bthost, uint8_t num_bis,
send_command(bthost, BT_HCI_CMD_LE_CREATE_BIG, &cp, sizeof(cp));
}
+void bthost_terminate_big(struct bthost *bthost, uint8_t reason)
+{
+ struct bt_hci_cmd_le_term_big cp;
+
+ memset(&cp, 0, sizeof(cp));
+ cp.handle = 0x01;
+ cp.reason = reason;
+
+ send_command(bthost, BT_HCI_CMD_LE_TERM_BIG, &cp, sizeof(cp));
+}
+
bool bthost_search_ext_adv_addr(struct bthost *bthost, const uint8_t *addr)
{
const struct queue_entry *entry;
diff --git a/emulator/bthost.h b/emulator/bthost.h
index 4061c0be5349..ce6bd820fefe 100644
--- a/emulator/bthost.h
+++ b/emulator/bthost.h
@@ -128,6 +128,7 @@ void bthost_set_pa_enable(struct bthost *bthost, uint8_t enable);
void bthost_past_set_info(struct bthost *bthost, uint16_t handle);
void bthost_create_big(struct bthost *bthost, uint8_t num_bis, uint8_t enc,
const uint8_t *bcode);
+void bthost_terminate_big(struct bthost *bthost, uint8_t reason);
bool bthost_search_ext_adv_addr(struct bthost *bthost, const uint8_t *addr);
void bthost_set_cig_params(struct bthost *bthost, uint8_t cig_id,
--
2.51.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH BlueZ v2 3/5] iso-tester: Add tests for checking proper handling of Sync Lost
2025-11-07 18:54 [PATCH BlueZ v2 1/5] emulator: Generate PA Sync Lost Luiz Augusto von Dentz
2025-11-07 18:54 ` [PATCH BlueZ v2 2/5] bthost: Add support for terminating a BIG Luiz Augusto von Dentz
@ 2025-11-07 18:54 ` Luiz Augusto von Dentz
2025-11-07 18:54 ` [PATCH BlueZ v2 4/5] bass: Fix not cleaning up delegator properly Luiz Augusto von Dentz
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Luiz Augusto von Dentz @ 2025-11-07 18:54 UTC (permalink / raw)
To: linux-bluetooth
From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This introduces the following tests to check if BIG/PA Sync Lost are
handled properly:
ISO Broadcaster Receiver Sync Lost - Success
ISO Broadcaster PAST Receiver Sync Lost - Success
---
tools/iso-tester.c | 49 ++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 49 insertions(+)
diff --git a/tools/iso-tester.c b/tools/iso-tester.c
index 4bf1a287bc68..ff5c85ae410c 100644
--- a/tools/iso-tester.c
+++ b/tools/iso-tester.c
@@ -502,6 +502,7 @@ struct iso_client_data {
bool listen_bind;
bool pa_bind;
bool big;
+ bool terminate;
/* Enable BT_PKT_SEQNUM for RX packet sequence numbers */
bool pkt_seqnum;
@@ -1578,6 +1579,27 @@ static const struct iso_client_data bcast_16_2_1_recv_defer_get_base = {
.base_len = sizeof(base_lc3_ac_12),
};
+static const struct iso_client_data bcast_16_2_1_recv_terminate = {
+ .qos = QOS_IN_16_2_1,
+ .expect_err = 0,
+ .recv = &send_16_2_1,
+ .bcast = true,
+ .server = true,
+ .big = true,
+ .terminate = true,
+};
+
+static const struct iso_client_data past_16_2_1_recv_terminate = {
+ .qos = QOS_IN_16_2_1,
+ .expect_err = 0,
+ .recv = &send_16_2_1,
+ .bcast = true,
+ .past = true,
+ .server = true,
+ .big = true,
+ .terminate = true,
+};
+
static const struct iso_client_data bcast_ac_12 = {
.qos = BCAST_AC_12,
.expect_err = 0,
@@ -2389,6 +2411,21 @@ static void iso_shutdown(struct test_data *data, GIOChannel *io)
tester_print("Disconnecting...");
}
+static void iso_terminate(struct test_data *data, GIOChannel *io)
+{
+ struct bthost *host;
+
+ /* Setup watcher to check if fd is closed properly after termination */
+ data->io_id[0] = g_io_add_watch(io, G_IO_HUP, iso_disconnected, data);
+
+ tester_print("Terminating...");
+
+ host = hciemu_client_get_host(data->hciemu);
+
+ bthost_set_pa_enable(host, 0x00);
+ bthost_terminate_big(host, BT_HCI_ERR_LOCAL_HOST_TERM);
+}
+
static gboolean iso_recv_data(GIOChannel *io, GIOCondition cond,
gpointer user_data)
{
@@ -2498,6 +2535,8 @@ static gboolean iso_recv_data(GIOChannel *io, GIOCondition cond,
return TRUE;
else if (isodata->disconnect)
iso_shutdown(data, io);
+ else if (isodata->terminate)
+ iso_terminate(data, io);
else
tester_test_passed();
@@ -4311,6 +4350,16 @@ int main(int argc, char *argv[])
setup_powered,
test_bcast_recv);
+ test_iso("ISO Broadcaster Receiver Sync Lost - Success",
+ &bcast_16_2_1_recv_terminate,
+ setup_powered,
+ test_bcast_recv);
+
+ test_iso("ISO Broadcaster PAST Receiver Sync Lost - Success",
+ &past_16_2_1_recv_terminate,
+ setup_powered,
+ test_bcast_recv);
+
test_iso("ISO Broadcaster AC 12 - Success", &bcast_ac_12, setup_powered,
test_bcast);
--
2.51.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH BlueZ v2 4/5] bass: Fix not cleaning up delegator properly
2025-11-07 18:54 [PATCH BlueZ v2 1/5] emulator: Generate PA Sync Lost Luiz Augusto von Dentz
2025-11-07 18:54 ` [PATCH BlueZ v2 2/5] bthost: Add support for terminating a BIG Luiz Augusto von Dentz
2025-11-07 18:54 ` [PATCH BlueZ v2 3/5] iso-tester: Add tests for checking proper handling of Sync Lost Luiz Augusto von Dentz
@ 2025-11-07 18:54 ` Luiz Augusto von Dentz
2025-11-07 18:54 ` [PATCH BlueZ v2 5/5] btio: Fix endless loop if accept return -EBADFD Luiz Augusto von Dentz
2025-11-07 20:16 ` [BlueZ,v2,1/5] emulator: Generate PA Sync Lost bluez.test.bot
4 siblings, 0 replies; 6+ messages in thread
From: Luiz Augusto von Dentz @ 2025-11-07 18:54 UTC (permalink / raw)
To: linux-bluetooth
From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
When BIG sync is lost, or the assistant modify removing all streams,
delegator should be freed to so the assistant can start over and share
another stream.
---
profiles/audio/bap.c | 27 +++---
profiles/audio/bass.c | 208 ++++++++++++++++++++++--------------------
2 files changed, 126 insertions(+), 109 deletions(-)
diff --git a/profiles/audio/bap.c b/profiles/audio/bap.c
index c10f019edfea..0883f6c47902 100644
--- a/profiles/audio/bap.c
+++ b/profiles/audio/bap.c
@@ -3270,14 +3270,6 @@ static void pac_removed_broadcast(struct bt_bap_pac *pac, void *user_data)
ep_unregister(ep);
}
-static bool match_device(const void *data, const void *match_data)
-{
- const struct bap_data *bdata = data;
- const struct btd_device *device = match_data;
-
- return bdata->device == device;
-}
-
static struct bap_data *bap_data_new(struct btd_device *device)
{
struct bap_data *data;
@@ -3673,6 +3665,14 @@ static int bap_bcast_probe(struct btd_service *service)
return 0;
}
+static bool match_service(const void *data, const void *match_data)
+{
+ const struct bap_data *bdata = data;
+ const struct btd_service *service = match_data;
+
+ return bdata->service == service;
+}
+
static void bap_bcast_remove(struct btd_service *service)
{
struct btd_device *device = btd_service_get_device(service);
@@ -3682,7 +3682,10 @@ static void bap_bcast_remove(struct btd_service *service)
ba2str(device_get_address(device), addr);
DBG("%s", addr);
- data = queue_find(sessions, match_device, device);
+ /* Lookup the bap session for this service since in case of
+ * bass_delegator its user data is set by bass plugin.
+ */
+ data = queue_find(sessions, match_service, service);
if (!data) {
error("BAP service not handled by profile");
return;
@@ -3791,10 +3794,12 @@ static int bap_disconnect(struct btd_service *service)
static int bap_bcast_disconnect(struct btd_service *service)
{
- struct btd_device *device = btd_service_get_device(service);
struct bap_data *data;
- data = queue_find(sessions, match_device, device);
+ /* Lookup the bap session for this service since in case of
+ * bass_delegator its user data is set by bass plugin.
+ */
+ data = queue_find(sessions, match_service, service);
if (!data) {
error("BAP service not handled by profile");
return -EINVAL;
diff --git a/profiles/audio/bass.c b/profiles/audio/bass.c
index 0ba29f939f61..9ace372376f9 100644
--- a/profiles/audio/bass.c
+++ b/profiles/audio/bass.c
@@ -269,14 +269,6 @@ static void bass_req_bcode(struct bt_bap_stream *stream,
dg->timeout = g_timeout_add_seconds(10, req_timeout, dg);
}
-static bool delegator_match_device(const void *data, const void *match_data)
-{
- const struct bass_delegator *dg = data;
- const struct btd_device *device = match_data;
-
- return dg->device == device;
-}
-
static int stream_get_bis(struct bt_bap_stream *stream)
{
char *path = bt_bap_stream_get_user_data(stream);
@@ -366,6 +358,33 @@ static void setup_free(void *data)
free(setup);
}
+static void delegator_disconnect(struct bass_delegator *dg)
+{
+ struct btd_device *device = dg->device;
+ struct btd_service *service = dg->service;
+
+ DBG("%p", dg);
+
+ /* Disconnect service so BAP driver is cleanup properly and bt_bap is
+ * detached from the device.
+ */
+ btd_service_disconnect(service);
+
+ /* Remove service since delegator shold have been freed at this point */
+ device_remove_profile(device, btd_service_get_profile(service));
+
+ /* If the device is no longer consider connected it means no other
+ * service was connected so it has no longer any use and can be safely
+ * removed.
+ */
+ if (!btd_device_is_connected(device)) {
+ struct btd_adapter *adapter;
+
+ adapter = device_get_adapter(device);
+ btd_adapter_remove_device(adapter, device);
+ }
+}
+
static void bap_state_changed(struct bt_bap_stream *stream, uint8_t old_state,
uint8_t new_state, void *user_data)
{
@@ -459,6 +478,8 @@ static void bap_state_changed(struct bt_bap_stream *stream, uint8_t old_state,
setup->stream = NULL;
queue_remove(setup->dg->setups, setup);
setup_free(setup);
+ if (queue_isempty(dg->setups))
+ delegator_disconnect(dg);
break;
}
}
@@ -1296,15 +1317,65 @@ static void bap_bc_attached(struct bt_bap *bap, void *user_data)
bass_data_add(data);
}
+static bool delegator_match_device(const void *data, const void *match_data)
+{
+ const struct bass_delegator *dg = data;
+ const struct btd_device *device = match_data;
+
+ return dg->device == device;
+}
+
+static void delegator_attach(struct bt_bap *bap, struct btd_device *device,
+ struct btd_service *service)
+{
+ struct bass_delegator *dg;
+ GError *err = NULL;
+
+ dg = queue_find(delegators, delegator_match_device, device);
+ if (!dg)
+ /* Only probe devices added via Broadcast Assistants */
+ return;
+
+ DBG("delegator %p", dg);
+
+ if (dg->service)
+ /* Service has already been probed */
+ return;
+
+ dg->service = service;
+ dg->bap = bap;
+
+ dg->io = bt_io_listen(NULL, confirm_cb, dg,
+ NULL, &err,
+ BT_IO_OPT_SOURCE_BDADDR,
+ btd_adapter_get_address(device_get_adapter(device)),
+ BT_IO_OPT_SOURCE_TYPE,
+ btd_adapter_get_address_type(device_get_adapter(device)),
+ BT_IO_OPT_DEST_BDADDR,
+ device_get_address(device),
+ BT_IO_OPT_DEST_TYPE,
+ btd_device_get_bdaddr_type(device),
+ BT_IO_OPT_MODE, BT_IO_MODE_ISO,
+ BT_IO_OPT_QOS, &bap_sink_pa_qos,
+ BT_IO_OPT_ISO_BC_SID, dg->sid,
+ BT_IO_OPT_INVALID);
+ if (!dg->io) {
+ error("%s", err->message);
+ g_error_free(err);
+ return;
+ }
+
+ /* Take ownership for the service by setting the user data. */
+ btd_service_set_user_data(service, dg);
+}
+
static void bap_attached(struct bt_bap *bap, void *user_data)
{
struct btd_service *service;
struct btd_profile *p;
struct btd_device *device;
struct btd_adapter *adapter;
- struct bass_delegator *dg;
struct bass_data *data;
- GError *err = NULL;
service = bt_bap_get_user_data(bap);
if (!service)
@@ -1330,40 +1401,7 @@ static void bap_attached(struct bt_bap *bap, void *user_data)
bass_data_add(data);
- dg = queue_find(delegators, delegator_match_device, device);
- if (!dg)
- /* Only probe devices added via Broadcast Assistants */
- return;
-
- if (dg->service)
- /* Service has already been probed */
- return;
-
- dg->service = service;
- dg->bap = bap;
-
- dg->io = bt_io_listen(NULL, confirm_cb, dg,
- NULL, &err,
- BT_IO_OPT_SOURCE_BDADDR,
- btd_adapter_get_address(adapter),
- BT_IO_OPT_SOURCE_TYPE,
- btd_adapter_get_address_type(adapter),
- BT_IO_OPT_DEST_BDADDR,
- device_get_address(device),
- BT_IO_OPT_DEST_TYPE,
- btd_device_get_bdaddr_type(device),
- BT_IO_OPT_MODE, BT_IO_MODE_ISO,
- BT_IO_OPT_QOS, &bap_sink_pa_qos,
- BT_IO_OPT_ISO_BC_SID, dg->sid,
- BT_IO_OPT_INVALID);
- if (!dg->io) {
- error("%s", err->message);
- g_error_free(err);
- return;
- }
-
- /* Take ownership for the service by setting the user data. */
- btd_service_set_user_data(service, dg);
+ delegator_attach(bap, device, service);
}
static bool match_bap(const void *data, const void *match_data)
@@ -1417,12 +1455,35 @@ static void delegator_free(struct bass_delegator *dg)
free(dg);
}
+static bool match_service(const void *data, const void *match_data)
+{
+ const struct bass_data *bdata = data;
+ const struct btd_service *service = match_data;
+
+ return bdata->service == service;
+}
+
+static void delegator_detach(struct btd_service *service)
+{
+ struct bass_delegator *dg;
+
+ dg = btd_service_get_user_data(service);
+ if (!dg)
+ return;
+
+ if (!queue_remove(delegators, dg))
+ return;
+
+ DBG("%p", dg);
+
+ delegator_free(dg);
+
+ btd_service_set_user_data(service, NULL);
+}
+
static void bap_detached(struct bt_bap *bap, void *user_data)
{
struct btd_service *service;
- struct btd_profile *p;
- struct btd_device *device;
- struct bass_delegator *dg;
struct bass_data *data;
data = queue_find(sessions, match_bap, bap);
@@ -1435,31 +1496,15 @@ static void bap_detached(struct bt_bap *bap, void *user_data)
if (!service)
return;
- p = btd_service_get_profile(service);
- if (!p)
- return;
-
- /* Only handle sessions with Broadcast Sources */
- if (!g_str_equal(p->remote_uuid, BCAAS_UUID_STR))
- return;
-
- device = btd_service_get_device(service);
-
/* Remove BASS session with the Broadcast Source device */
- data = queue_find(sessions, match_device, device);
+ data = queue_find(sessions, match_service, service);
if (data) {
bt_bap_bis_cb_unregister(bap, data->bis_id);
bt_bap_state_unregister(bap, data->state_id);
bass_data_remove(data);
}
- dg = queue_remove_if(delegators, delegator_match_device, device);
- if (!dg)
- return;
-
- delegator_free(dg);
-
- btd_service_set_user_data(service, NULL);
+ delegator_detach(service);
}
static void bis_probe(uint8_t sid, uint8_t bis, uint8_t sgrp,
@@ -1807,39 +1852,6 @@ static int handle_mod_src_req(struct bt_bcast_src *bcast_src,
switch (sync_state) {
case BT_BASS_SYNCHRONIZED_TO_PA:
bass_update_bis_sync(dg, bcast_src);
-
- /* Check if there are any setups left since it means the PA
- * should be no longer synchronized.
- */
- if (queue_isempty(dg->setups)) {
- /* IO is no longer needed since there are no setups */
- g_io_channel_shutdown(dg->io, TRUE, NULL);
- g_io_channel_unref(dg->io);
- dg->io = NULL;
-
- bt_bass_set_pa_sync(dg->src,
- BT_BASS_NOT_SYNCHRONIZED_TO_PA);
-
- if (!dg->service)
- return 0;
-
- /* Disconnect service so BAP driver is cleanup
- * properly.
- */
- btd_service_disconnect(dg->service);
-
- /* If the device is no longer consider connected
- * it means no other service was connected so it
- * has no longer any use and can be safely removed.
- */
- if (!btd_device_is_connected(dg->device)) {
- struct btd_adapter *adapter;
-
- adapter = device_get_adapter(dg->device);
- btd_adapter_remove_device(adapter, dg->device);
- }
- }
-
break;
case BT_BASS_NOT_SYNCHRONIZED_TO_PA:
if (params->pa_sync == PA_SYNC_NO_PAST) {
--
2.51.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH BlueZ v2 5/5] btio: Fix endless loop if accept return -EBADFD
2025-11-07 18:54 [PATCH BlueZ v2 1/5] emulator: Generate PA Sync Lost Luiz Augusto von Dentz
` (2 preceding siblings ...)
2025-11-07 18:54 ` [PATCH BlueZ v2 4/5] bass: Fix not cleaning up delegator properly Luiz Augusto von Dentz
@ 2025-11-07 18:54 ` Luiz Augusto von Dentz
2025-11-07 20:16 ` [BlueZ,v2,1/5] emulator: Generate PA Sync Lost bluez.test.bot
4 siblings, 0 replies; 6+ messages in thread
From: Luiz Augusto von Dentz @ 2025-11-07 18:54 UTC (permalink / raw)
To: linux-bluetooth
From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
In certain cases, e.g. ISO Broadcast Listen, the listening socket may
get into an invalid state (CONNECTED) if the PA Sync is terminated
causing an endless loop of accept syscall.
---
btio/btio.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/btio/btio.c b/btio/btio.c
index 1a34927b2353..cfaa9392de12 100644
--- a/btio/btio.c
+++ b/btio/btio.c
@@ -253,8 +253,11 @@ static gboolean server_cb(GIOChannel *io, GIOCondition cond,
srv_sock = g_io_channel_unix_get_fd(io);
cli_sock = accept(srv_sock, NULL, NULL);
- if (cli_sock < 0)
+ if (cli_sock < 0) {
+ if (errno == EBADFD)
+ return FALSE;
return TRUE;
+ }
cli_io = g_io_channel_unix_new(cli_sock);
--
2.51.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* RE: [BlueZ,v2,1/5] emulator: Generate PA Sync Lost
2025-11-07 18:54 [PATCH BlueZ v2 1/5] emulator: Generate PA Sync Lost Luiz Augusto von Dentz
` (3 preceding siblings ...)
2025-11-07 18:54 ` [PATCH BlueZ v2 5/5] btio: Fix endless loop if accept return -EBADFD Luiz Augusto von Dentz
@ 2025-11-07 20:16 ` bluez.test.bot
4 siblings, 0 replies; 6+ messages in thread
From: bluez.test.bot @ 2025-11-07 20:16 UTC (permalink / raw)
To: linux-bluetooth, luiz.dentz
[-- Attachment #1: Type: text/plain, Size: 1753 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=1021045
---Test result---
Test Summary:
CheckPatch PENDING 0.36 seconds
GitLint PENDING 0.28 seconds
BuildEll PASS 19.96 seconds
BluezMake PASS 2849.56 seconds
MakeCheck PASS 19.97 seconds
MakeDistcheck PASS 191.71 seconds
CheckValgrind PASS 239.64 seconds
CheckSmatch WARNING 311.36 seconds
bluezmakeextell PASS 129.85 seconds
IncrementalBuild PENDING 0.28 seconds
ScanBuild PASS 940.00 seconds
Details
##############################
Test: CheckPatch - PENDING
Desc: Run checkpatch.pl script
Output:
##############################
Test: GitLint - PENDING
Desc: Run gitlint
Output:
##############################
Test: CheckSmatch - WARNING
Desc: Run smatch tool with source
Output:
emulator/btdev.c:461:29: warning: Variable length array is used.emulator/bthost.c:699:28: warning: Variable length array is used.emulator/bthost.c:700:32: warning: Variable length array is used.emulator/bthost.c:917:28: warning: Variable length array is used.emulator/bthost.c:951:28: warning: Variable length array is used.emulator/bthost.c:952:32: warning: Variable length array is used.
##############################
Test: IncrementalBuild - PENDING
Desc: Incremental build with the patches in the series
Output:
---
Regards,
Linux Bluetooth
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2025-11-07 20:16 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-07 18:54 [PATCH BlueZ v2 1/5] emulator: Generate PA Sync Lost Luiz Augusto von Dentz
2025-11-07 18:54 ` [PATCH BlueZ v2 2/5] bthost: Add support for terminating a BIG Luiz Augusto von Dentz
2025-11-07 18:54 ` [PATCH BlueZ v2 3/5] iso-tester: Add tests for checking proper handling of Sync Lost Luiz Augusto von Dentz
2025-11-07 18:54 ` [PATCH BlueZ v2 4/5] bass: Fix not cleaning up delegator properly Luiz Augusto von Dentz
2025-11-07 18:54 ` [PATCH BlueZ v2 5/5] btio: Fix endless loop if accept return -EBADFD Luiz Augusto von Dentz
2025-11-07 20:16 ` [BlueZ,v2,1/5] emulator: Generate PA Sync Lost bluez.test.bot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox