* [PATCH BlueZ 2/2] gatt-database: Prefer notifications over indications
From: Simon Mikuda @ 2026-06-14 10:29 UTC (permalink / raw)
To: linux-bluetooth; +Cc: Simon Mikuda
In-Reply-To: <CABBYNZL-A=NpnfiO9GO66TNX5QaEuvpSZ9fuBk0Jo+aNtr7huA@mail.gmail.com>
When both notifications and indications are enabled (CCC value=0x0003)
we will send notifications by default.
---
src/gatt-database.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/gatt-database.c b/src/gatt-database.c
index 680a52952..dfa83b31a 100644
--- a/src/gatt-database.c
+++ b/src/gatt-database.c
@@ -1446,7 +1446,7 @@ static void send_notification_to_device(void *data, void *user_data)
* TODO: If the device is not connected but bonded, send the
* notification/indication when it becomes connected.
*/
- if (!(ccc->value & 0x0002)) {
+ if (ccc->value & 0x0001) {
DBG("GATT server sending notification");
bt_gatt_server_send_notification(server,
notify->handle, notify->value,
--
2.43.0
^ permalink raw reply related
* [PATCH v2 5/5] Bluetooth: enable context analysis
From: Pauli Virtanen @ 2026-06-14 10:27 UTC (permalink / raw)
To: linux-bluetooth; +Cc: Pauli Virtanen
In-Reply-To: <cover.1781432726.git.pav@iki.fi>
Enable compiler context analysis for Bluetooth subsystem and drivers.
Signed-off-by: Pauli Virtanen <pav@iki.fi>
---
drivers/bluetooth/Makefile | 2 ++
net/bluetooth/Makefile | 2 ++
net/bluetooth/bnep/Makefile | 2 ++
net/bluetooth/hidp/Makefile | 2 ++
net/bluetooth/rfcomm/Makefile | 2 ++
5 files changed, 10 insertions(+)
diff --git a/drivers/bluetooth/Makefile b/drivers/bluetooth/Makefile
index bafc26250b63..e6b1c1180d1d 100644
--- a/drivers/bluetooth/Makefile
+++ b/drivers/bluetooth/Makefile
@@ -50,3 +50,5 @@ hci_uart-$(CONFIG_BT_HCIUART_AG6XX) += hci_ag6xx.o
hci_uart-$(CONFIG_BT_HCIUART_MRVL) += hci_mrvl.o
hci_uart-$(CONFIG_BT_HCIUART_AML) += hci_aml.o
hci_uart-objs := $(hci_uart-y)
+
+CONTEXT_ANALYSIS := y
diff --git a/net/bluetooth/Makefile b/net/bluetooth/Makefile
index 41049b280887..ff466ea97436 100644
--- a/net/bluetooth/Makefile
+++ b/net/bluetooth/Makefile
@@ -25,3 +25,5 @@ bluetooth-$(CONFIG_BT_MSFTEXT) += msft.o
bluetooth-$(CONFIG_BT_AOSPEXT) += aosp.o
bluetooth-$(CONFIG_BT_DEBUGFS) += hci_debugfs.o
bluetooth-$(CONFIG_BT_SELFTEST) += selftest.o
+
+CONTEXT_ANALYSIS := y
diff --git a/net/bluetooth/bnep/Makefile b/net/bluetooth/bnep/Makefile
index 8af9d56bb012..f42015cc3245 100644
--- a/net/bluetooth/bnep/Makefile
+++ b/net/bluetooth/bnep/Makefile
@@ -6,3 +6,5 @@
obj-$(CONFIG_BT_BNEP) += bnep.o
bnep-objs := core.o sock.o netdev.o
+
+CONTEXT_ANALYSIS := y
diff --git a/net/bluetooth/hidp/Makefile b/net/bluetooth/hidp/Makefile
index f41b0aa02b23..53e139e41bdc 100644
--- a/net/bluetooth/hidp/Makefile
+++ b/net/bluetooth/hidp/Makefile
@@ -6,3 +6,5 @@
obj-$(CONFIG_BT_HIDP) += hidp.o
hidp-objs := core.o sock.o
+
+CONTEXT_ANALYSIS := y
diff --git a/net/bluetooth/rfcomm/Makefile b/net/bluetooth/rfcomm/Makefile
index 593e5c48c131..15f909f40f25 100644
--- a/net/bluetooth/rfcomm/Makefile
+++ b/net/bluetooth/rfcomm/Makefile
@@ -7,3 +7,5 @@ obj-$(CONFIG_BT_RFCOMM) += rfcomm.o
rfcomm-y := core.o sock.o
rfcomm-$(CONFIG_BT_RFCOMM_TTY) += tty.o
+
+CONTEXT_ANALYSIS := y
--
2.54.0
^ permalink raw reply related
* [PATCH v2 4/5] Bluetooth: RFCOMM: Add minimal context analysis annotations
From: Pauli Virtanen @ 2026-06-14 10:27 UTC (permalink / raw)
To: linux-bluetooth; +Cc: Pauli Virtanen
In-Reply-To: <cover.1781432726.git.pav@iki.fi>
Add minimal compiler context analysis annotations, required for
compilation to pass.
Signed-off-by: Pauli Virtanen <pav@iki.fi>
---
net/bluetooth/rfcomm/sock.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/net/bluetooth/rfcomm/sock.c b/net/bluetooth/rfcomm/sock.c
index feb302a491fa..958081adb9b5 100644
--- a/net/bluetooth/rfcomm/sock.c
+++ b/net/bluetooth/rfcomm/sock.c
@@ -60,6 +60,7 @@ static void rfcomm_sk_data_ready(struct rfcomm_dlc *d, struct sk_buff *skb)
}
static void rfcomm_sk_state_change(struct rfcomm_dlc *d, int err)
+ __must_hold(&d->lock)
{
struct sock *sk = d->owner, *parent;
--
2.54.0
^ permalink raw reply related
* [PATCH v2 2/5] Bluetooth: hci_core: Add minimal context analysis annotations
From: Pauli Virtanen @ 2026-06-14 10:27 UTC (permalink / raw)
To: linux-bluetooth; +Cc: Pauli Virtanen
In-Reply-To: <cover.1781432726.git.pav@iki.fi>
Add minimal compiler context analysis annotations, required for
compilation to pass.
compiler-context-analysis.h doesn't have tools to deal with the
conditional SRCU locking on return value used here, so just disable the
analysis in places instead of refactoring, in order to not make code
changes here.
Signed-off-by: Pauli Virtanen <pav@iki.fi>
---
net/bluetooth/hci_core.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
index 5ba9fe8261ec..d1e78ae7728e 100644
--- a/net/bluetooth/hci_core.c
+++ b/net/bluetooth/hci_core.c
@@ -62,6 +62,7 @@ static DEFINE_IDA(hci_index_ida);
/* Get HCI device by index.
* Device is held on return. */
static struct hci_dev *__hci_dev_get(int index, int *srcu_index)
+ __context_unsafe(/* conditional locking */)
{
struct hci_dev *hdev = NULL, *d;
@@ -89,11 +90,13 @@ struct hci_dev *hci_dev_get(int index)
}
static struct hci_dev *hci_dev_get_srcu(int index, int *srcu_index)
+ __context_unsafe(/* conditional locking vs return */)
{
return __hci_dev_get(index, srcu_index);
}
static void hci_dev_put_srcu(struct hci_dev *hdev, int srcu_index)
+ __context_unsafe(/* conditional locking vs return */)
{
srcu_read_unlock(&hdev->srcu, srcu_index);
hci_dev_put(hdev);
--
2.54.0
^ permalink raw reply related
* [PATCH v2 0/5] Bluetooth: enable context analysis
From: Pauli Virtanen @ 2026-06-14 10:27 UTC (permalink / raw)
To: linux-bluetooth; +Cc: Pauli Virtanen
v2:
- Add annotations to RFCOMM
- Enable analysis also for BNEP, RFCOMM, HIDP
***
Set up compiler context analysis that generate compiler warnings on
problems that Clang -Wthread-safety can detect:
https://docs.kernel.org/dev-tools/context-analysis.html
Sparse locking analysis support was removed in commit
5b63d0ae94ccfd64dcbdb693d88eb3650eb3c64c, this is its successor.
Clang 22 is required, and likely in future Clang 23 [1] (unreleased, use
snapshot eg from
https://mirrors.edge.kernel.org/pub/tools/llvm/files/prerelease/ )
This series enables the analysis and adds minimal annotations to remove
all warnings.
In future, it probably is a good idea to make more use of it and add
__must_hold, __guarded_by etc annotations.
Kernel test robot appears to be checking for these, but not sure in what
trees [2]
BlueZ testbot doesn't check these currently but it's possible to add
https://github.com/bluez/action-ci/pull/4
[1] https://lore.kernel.org/all/177996424926.1039918.344230591161201072.tip-bot2@tip-bot2/
[2] https://lore.kernel.org/all/202605060005.JYWpZXr2-lkp@intel.com/
Pauli Virtanen (5):
Bluetooth: af_bluetooth: Add minimal context analysis annotations
Bluetooth: hci_core: Add minimal context analysis annotations
Bluetooth: L2CAP: Add minimal context analysis annotations
Bluetooth: RFCOMM: Add minimal context analysis annotations
Bluetooth: enable context analysis
drivers/bluetooth/Makefile | 2 ++
net/bluetooth/Makefile | 2 ++
net/bluetooth/af_bluetooth.c | 7 +++++--
net/bluetooth/bnep/Makefile | 2 ++
net/bluetooth/hci_core.c | 3 +++
net/bluetooth/hidp/Makefile | 2 ++
net/bluetooth/l2cap_sock.c | 1 +
net/bluetooth/rfcomm/Makefile | 2 ++
net/bluetooth/rfcomm/sock.c | 1 +
9 files changed, 20 insertions(+), 2 deletions(-)
--
2.54.0
^ permalink raw reply
* [PATCH v2 3/5] Bluetooth: L2CAP: Add minimal context analysis annotations
From: Pauli Virtanen @ 2026-06-14 10:27 UTC (permalink / raw)
To: linux-bluetooth; +Cc: Pauli Virtanen
In-Reply-To: <cover.1781432726.git.pav@iki.fi>
Add minimal compiler context analysis annotations, required for
compilation to pass.
Don't check complex conn->lock usage in l2cap_sock_shutdown(). The
analysis cannot know that chan->conn pointer is never replaced by a
different l2cap_conn.
Signed-off-by: Pauli Virtanen <pav@iki.fi>
---
net/bluetooth/l2cap_sock.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/net/bluetooth/l2cap_sock.c b/net/bluetooth/l2cap_sock.c
index 4853f1b33449..8558a7071ff5 100644
--- a/net/bluetooth/l2cap_sock.c
+++ b/net/bluetooth/l2cap_sock.c
@@ -1351,6 +1351,7 @@ static int __l2cap_wait_ack(struct sock *sk, struct l2cap_chan *chan)
}
static int l2cap_sock_shutdown(struct socket *sock, int how)
+ __context_unsafe(/* complex chan->conn locking */)
{
struct sock *sk = sock->sk;
struct l2cap_chan *chan;
--
2.54.0
^ permalink raw reply related
* [PATCH v2 1/5] Bluetooth: af_bluetooth: Add minimal context analysis annotations
From: Pauli Virtanen @ 2026-06-14 10:27 UTC (permalink / raw)
To: linux-bluetooth; +Cc: Pauli Virtanen
In-Reply-To: <cover.1781432726.git.pav@iki.fi>
Add minimal compiler context analysis annotations, required for
compilation to pass.
Signed-off-by: Pauli Virtanen <pav@iki.fi>
---
net/bluetooth/af_bluetooth.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/net/bluetooth/af_bluetooth.c b/net/bluetooth/af_bluetooth.c
index bcbc11c9cb15..62b751203fb0 100644
--- a/net/bluetooth/af_bluetooth.c
+++ b/net/bluetooth/af_bluetooth.c
@@ -209,6 +209,7 @@ bool bt_sock_linked(struct bt_sock_list *l, struct sock *s)
EXPORT_SYMBOL(bt_sock_linked);
void bt_accept_enqueue(struct sock *parent, struct sock *sk, bool bh)
+ __context_unsafe(/* conditional locking */)
{
const struct cred *old_cred;
struct pid *old_pid;
@@ -826,7 +827,8 @@ EXPORT_SYMBOL(bt_sock_wait_ready);
#ifdef CONFIG_PROC_FS
static void *bt_seq_start(struct seq_file *seq, loff_t *pos)
- __acquires(seq->private->l->lock)
+ __acquires_shared(&((struct bt_sock_list *)
+ pde_data(file_inode(seq->file)))->lock)
{
struct bt_sock_list *l = pde_data(file_inode(seq->file));
@@ -842,7 +844,8 @@ static void *bt_seq_next(struct seq_file *seq, void *v, loff_t *pos)
}
static void bt_seq_stop(struct seq_file *seq, void *v)
- __releases(seq->private->l->lock)
+ __releases_shared(&((struct bt_sock_list *)
+ pde_data(file_inode(seq->file)))->lock)
{
struct bt_sock_list *l = pde_data(file_inode(seq->file));
--
2.54.0
^ permalink raw reply related
* Re: [PATCH BlueZ v2 1/2] shared/bap: Initialize ucast/bcast IDs as unset
From: Pauli Virtanen @ 2026-06-14 10:24 UTC (permalink / raw)
To: Simon Mikuda, linux-bluetooth
In-Reply-To: <20260614095520.1090106-1-simon.mikuda@streamunlimited.com>
Hi,
su, 2026-06-14 kello 11:55 +0200, Simon Mikuda kirjoitti:
> Also change some lines where CIS should be used instead of CIG
> ---
> src/shared/bap.c | 4 ++++
> unit/test-bap.c | 4 ++--
> 2 files changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/src/shared/bap.c b/src/shared/bap.c
> index deb85b264..41139181b 100644
> --- a/src/shared/bap.c
> +++ b/src/shared/bap.c
> @@ -2901,6 +2901,10 @@ static struct bt_bap_stream *bap_stream_new(struct bt_bap *bap,
> stream->client = client;
> stream->ops = bap_stream_new_ops(stream);
> stream->pending_states = queue_new();
> + stream->qos.bcast.big = BT_ISO_QOS_BIG_UNSET;
> + stream->qos.bcast.bis = BT_ISO_QOS_BIS_UNSET;
> + stream->qos.ucast.cig_id = BT_ISO_QOS_CIG_UNSET;
> + stream->qos.ucast.cis_id = BT_ISO_QOS_CIS_UNSET;
qos.bcast and qos.ucast are overlapping union members, so strictly
speaking this should check bt_bap_stream_get_type(stream) and set the
relevant union member.
>
> queue_push_tail(bap->streams, stream);
>
> diff --git a/unit/test-bap.c b/unit/test-bap.c
> index 03b19678e..4ac9a207c 100644
> --- a/unit/test-bap.c
> +++ b/unit/test-bap.c
> @@ -9894,7 +9894,7 @@ static int streaming_ucl_create_io(struct bt_bap_stream *stream,
>
> i = qos[0] ? qos[0]->ucast.cis_id : qos[1]->ucast.cis_id;
>
> - if (i == BT_ISO_QOS_CIG_UNSET) {
> + if (i == BT_ISO_QOS_CIS_UNSET) {
> for (i = 0; i < ARRAY_SIZE(data->fds); ++i) {
> if (data->fds[i][0] > 0)
> continue;
> @@ -10000,7 +10000,7 @@ static void test_select_cb(struct bt_bap_pac *pac, int err,
>
> if (!data->cfg->streams) {
> qos->ucast.cig_id = BT_ISO_QOS_CIG_UNSET;
> - qos->ucast.cis_id = BT_ISO_QOS_CIG_UNSET;
> + qos->ucast.cis_id = BT_ISO_QOS_CIS_UNSET;
> } else {
> /* All streams to separate CIS.
> *
--
Pauli Virtanen
^ permalink raw reply
* [bluez/bluez] 36c635: shared/bap: Initialize ucast/bcast IDs as unset
From: Šimon Mikuda @ 2026-06-14 10:06 UTC (permalink / raw)
To: linux-bluetooth
Branch: refs/heads/1111248
Home: https://github.com/bluez/bluez
Commit: 36c635d5936726274ecb7cc07556be591a2248f4
https://github.com/bluez/bluez/commit/36c635d5936726274ecb7cc07556be591a2248f4
Author: Simon Mikuda <simon.mikuda@streamunlimited.com>
Date: 2026-06-14 (Sun, 14 Jun 2026)
Changed paths:
M src/shared/bap.c
M unit/test-bap.c
Log Message:
-----------
shared/bap: Initialize ucast/bcast IDs as unset
Also change some lines where CIS should be used instead of CIG
Commit: 964d7f50d6baeb1b506d9f96f469a0ecf205ac85
https://github.com/bluez/bluez/commit/964d7f50d6baeb1b506d9f96f469a0ecf205ac85
Author: Simon Mikuda <simon.mikuda@streamunlimited.com>
Date: 2026-06-14 (Sun, 14 Jun 2026)
Changed paths:
M src/shared/bap.c
Log Message:
-----------
shared/bap: Don't link server ucast streams before CIS IDs are assigned
bap_ucast_io_link pairs streams whose CIG/CIS IDs match, but the IDs
are unset in Codec Configured state, so a Sink and Source bound for
different CISes get linked. The stray link later propagates a
disconnect to the wrong ASE and breaks Receiver Start Ready.
Skip linking until QoS Configured assigns the IDs.
Fixes PTS test BAP/USR/STR/BV-362-C
Compare: https://github.com/bluez/bluez/compare/36c635d59367%5E...964d7f50d6ba
To unsubscribe from these emails, change your notification settings at https://github.com/bluez/bluez/settings/notifications
^ permalink raw reply
* [PATCH BlueZ v2 2/2] unit/bap: Add CIS loss test
From: Simon Mikuda @ 2026-06-14 10:02 UTC (permalink / raw)
To: linux-bluetooth; +Cc: Simon Mikuda
In-Reply-To: <20260614100208.1091560-1-simon.mikuda@streamunlimited.com>
Verify a Source ASE in the Enabling state transitions to QoS Configured
rather than Disabling when its CIS is lost.
Assisted-by: ClaudeCode:claude-opus-4.8
---
unit/test-bap.c | 74 +++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 74 insertions(+)
diff --git a/unit/test-bap.c b/unit/test-bap.c
index 03b19678e..2847f5743 100644
--- a/unit/test-bap.c
+++ b/unit/test-bap.c
@@ -1486,6 +1486,37 @@ static void test_server(const void *user_data)
tester_io_send();
}
+static void bap_attached_state(struct bt_bap *bap, void *user_data)
+{
+ struct test_data *data = user_data;
+
+ data->bap = bap;
+
+ bt_bap_set_debug(data->bap, print_debug, "bt_bap:", NULL);
+
+ bt_bap_state_register(data->bap, data->cfg->state_func, NULL, data,
+ NULL);
+}
+
+/* Like test_server() but registers the config's state callback so the test can
+ * drive autonomous server transitions (e.g. loss of the CIS).
+ */
+static void test_server_state(const void *user_data)
+{
+ struct test_data *data = (void *)user_data;
+ struct io *io;
+
+ io = tester_setup_io(data->iov, data->iovcnt);
+ g_assert(io);
+
+ tester_io_set_complete_func(test_complete_cb);
+
+ data->id = bt_bap_register(bap_attached_state, NULL, data);
+ g_assert(data->id);
+
+ tester_io_send();
+}
+
static void test_usr_disc(void)
{
/* BAP/USR/DISC/BV-01-C [Expose Audio Sink Capabilities]
@@ -4427,6 +4458,48 @@ static void test_spe(void)
IOV_DATA(0x1b, 0x16, 0x00, 0x01, 0x04, 0x00, 0x00, 0x04, 0x03, 0x02, \
0x01, 0x00)
+static void state_cis_loss(struct bt_bap_stream *stream, uint8_t old_state,
+ uint8_t new_state, void *user_data)
+{
+ struct test_data *data = user_data;
+ int fds[2];
+ int err;
+
+ if (new_state != data->cfg->state)
+ return;
+
+ /* Attach a CIS and tear it down to simulate its loss. */
+ err = socketpair(AF_UNIX, SOCK_SEQPACKET | SOCK_CLOEXEC, 0, fds);
+ g_assert(err == 0);
+ g_assert(bt_bap_stream_io_connecting(stream, fds[0]) == 0);
+ close(fds[1]);
+}
+
+static struct test_config cfg_src_enabling_cis_loss = {
+ .cc = LC3_CONFIG_16_2,
+ .qos = LC3_QOS_16_2_1,
+ .src = true,
+ .state = BT_BAP_STREAM_STATE_ENABLING,
+ .state_func = state_cis_loss,
+};
+
+/* On loss of the CIS a Source ASE in Enabling moves to QoS Configured, not
+ * Disabling.
+ */
+#define SCC_SRC_ENABLING_CIS_LOSS \
+ SCC_SRC_16_2_1, \
+ ENABLE_ASE(SRC_ID(0)), \
+ QOS_SRC_NOTIFY(0, 0, 0x10, 0x27, 0x00, 0x00, 0x02, 0x28, 0x00, \
+ 0x02, 0x0a, 0x00, 0x40, 0x9c, 0x00)
+
+static void test_usr_scc_cis_loss(void)
+{
+ define_test("BAP/USR/SCC/BV-167-C [USR SRC QoS Configured on CIS loss]",
+ test_setup_server, test_server_state,
+ &cfg_src_enabling_cis_loss,
+ SCC_SRC_ENABLING_CIS_LOSS);
+}
+
static struct test_config str_snk_ac2_8_1_1 = {
.cc = LC3_CONFIG_8_1_AC(1),
.qos = LC3_QOS_8_1_1_AC(1),
@@ -7287,6 +7360,7 @@ static void test_scc(void)
test_scc_enable();
test_scc_disable();
test_scc_release();
+ test_usr_scc_cis_loss();
test_scc_metadata();
test_str_1_1_1_lc3();
}
--
2.43.0
^ permalink raw reply related
* [PATCH BlueZ v2 1/2] shared/bap: Transition ASE to QoS Configured on CIS loss
From: Simon Mikuda @ 2026-06-14 10:02 UTC (permalink / raw)
To: linux-bluetooth; +Cc: Simon Mikuda
In-Reply-To: <CABBYNZ+3vm1APyYtKYbXSVYMDC4YjXDrZEmNHeTKEGMg_Stpyg@mail.gmail.com>
stream_io_disconnected() only handled the Releasing state, leaving
Enabling, Streaming and Disabling ASEs stuck when the CIS was lost
unexpectedly.
The ASE shall autonomously move to QoS Configured on loss of the
CIS and notify the peer
Fixes PTS test BAP/USR/SCC/BV-167-C
---
src/shared/bap.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/src/shared/bap.c b/src/shared/bap.c
index deb85b264..8d1f25719 100644
--- a/src/shared/bap.c
+++ b/src/shared/bap.c
@@ -6776,8 +6776,16 @@ static bool stream_io_disconnected(struct io *io, void *user_data)
return false;
}
- if (stream->ep->state == BT_ASCS_ASE_STATE_RELEASING)
+ switch (stream->ep->state) {
+ case BT_ASCS_ASE_STATE_RELEASING:
stream_set_state(stream, BT_BAP_STREAM_STATE_CONFIG);
+ break;
+ case BT_ASCS_ASE_STATE_ENABLING:
+ case BT_ASCS_ASE_STATE_STREAMING:
+ case BT_ASCS_ASE_STATE_DISABLING:
+ stream_set_state(stream, BT_BAP_STREAM_STATE_QOS);
+ break;
+ }
bt_bap_stream_set_io(stream, -1);
return false;
--
2.43.0
^ permalink raw reply related
* [PATCH BlueZ v2 2/2] shared/bap: Don't link server ucast streams before CIS IDs are assigned
From: Simon Mikuda @ 2026-06-14 9:55 UTC (permalink / raw)
To: linux-bluetooth; +Cc: Simon Mikuda
In-Reply-To: <20260614095520.1090106-1-simon.mikuda@streamunlimited.com>
bap_ucast_io_link pairs streams whose CIG/CIS IDs match, but the IDs
are unset in Codec Configured state, so a Sink and Source bound for
different CISes get linked. The stray link later propagates a
disconnect to the wrong ASE and breaks Receiver Start Ready.
Skip linking until QoS Configured assigns the IDs.
Fixes PTS test BAP/USR/STR/BV-362-C
---
src/shared/bap.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/src/shared/bap.c b/src/shared/bap.c
index 41139181b..935387a76 100644
--- a/src/shared/bap.c
+++ b/src/shared/bap.c
@@ -2679,6 +2679,15 @@ static int bap_ucast_io_link(struct bt_bap_stream *stream,
stream->ep->dir == link->ep->dir)
return -EINVAL;
+ /* The server pairs Sink and Source by matching CIG/CIS, but those are
+ * unset until QoS Configured, so it would link unrelated ASEs (CIS 0
+ * is otherwise a valid ID). Clients gate linking on the lock instead.
+ */
+ if (!stream->client &&
+ (stream->qos.ucast.cis_id == BT_ISO_QOS_CIS_UNSET ||
+ link->qos.ucast.cis_id == BT_ISO_QOS_CIS_UNSET))
+ return -EINVAL;
+
if (stream->client && !(stream->locked && link->locked))
return -EINVAL;
--
2.43.0
^ permalink raw reply related
* [PATCH BlueZ v2 1/2] shared/bap: Initialize ucast/bcast IDs as unset
From: Simon Mikuda @ 2026-06-14 9:55 UTC (permalink / raw)
To: linux-bluetooth; +Cc: Simon Mikuda
In-Reply-To: <fa0febe1-5866-4a3f-9f86-ae70e9d4b22d@streamunlimited.com>
Also change some lines where CIS should be used instead of CIG
---
src/shared/bap.c | 4 ++++
unit/test-bap.c | 4 ++--
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/src/shared/bap.c b/src/shared/bap.c
index deb85b264..41139181b 100644
--- a/src/shared/bap.c
+++ b/src/shared/bap.c
@@ -2901,6 +2901,10 @@ static struct bt_bap_stream *bap_stream_new(struct bt_bap *bap,
stream->client = client;
stream->ops = bap_stream_new_ops(stream);
stream->pending_states = queue_new();
+ stream->qos.bcast.big = BT_ISO_QOS_BIG_UNSET;
+ stream->qos.bcast.bis = BT_ISO_QOS_BIS_UNSET;
+ stream->qos.ucast.cig_id = BT_ISO_QOS_CIG_UNSET;
+ stream->qos.ucast.cis_id = BT_ISO_QOS_CIS_UNSET;
queue_push_tail(bap->streams, stream);
diff --git a/unit/test-bap.c b/unit/test-bap.c
index 03b19678e..4ac9a207c 100644
--- a/unit/test-bap.c
+++ b/unit/test-bap.c
@@ -9894,7 +9894,7 @@ static int streaming_ucl_create_io(struct bt_bap_stream *stream,
i = qos[0] ? qos[0]->ucast.cis_id : qos[1]->ucast.cis_id;
- if (i == BT_ISO_QOS_CIG_UNSET) {
+ if (i == BT_ISO_QOS_CIS_UNSET) {
for (i = 0; i < ARRAY_SIZE(data->fds); ++i) {
if (data->fds[i][0] > 0)
continue;
@@ -10000,7 +10000,7 @@ static void test_select_cb(struct bt_bap_pac *pac, int err,
if (!data->cfg->streams) {
qos->ucast.cig_id = BT_ISO_QOS_CIG_UNSET;
- qos->ucast.cis_id = BT_ISO_QOS_CIG_UNSET;
+ qos->ucast.cis_id = BT_ISO_QOS_CIS_UNSET;
} else {
/* All streams to separate CIS.
*
--
2.43.0
^ permalink raw reply related
* [Bug 221637] Regression for Intel Corporation Device a876 (rev 10)
From: bugzilla-daemon @ 2026-06-14 7:04 UTC (permalink / raw)
To: linux-bluetooth
In-Reply-To: <bug-221637-62941@https.bugzilla.kernel.org/>
https://bugzilla.kernel.org/show_bug.cgi?id=221637
--- Comment #6 from Paul Menzel (pmenzel+bugzilla.kernel.org@molgen.mpg.de) ---
Bianca sent a message to the mailing list: [REGRESSION] Intel Corporation
Device a876 (rev 10) firmware crashes since ed10eae8 [1].
[1]:
https://lore.kernel.org/all/635e5e63-dc67-4dac-8590-d613582c94c8@posteo.net/
--
You may reply to this email to add a comment.
You are receiving this mail because:
You are the assignee for the bug.
^ permalink raw reply
* Re: [REGRESSION] Intel Corporation Device a876 (rev 10) firmware crashes since ed10eae8
From: Paul Menzel @ 2026-06-14 7:01 UTC (permalink / raw)
To: Bianca Fürstenau, Ravindra, Dmitry Baryshkov, Kiran K,
Josh Boyer
Cc: linux-firmware, linux-bluetooth, regressions, Sai Teja Aluvala,
Thorsten Leemhuis, Mario Limonciello, Pierre-Olivier Vallès
In-Reply-To: <635e5e63-dc67-4dac-8590-d613582c94c8@posteo.net>
[To: +Josh, +Kiran]
[Cc: +linux-firmware@]
Am 13.06.26 um 23:09 schrieb Bianca Fürstenau:
> Dear Dmitry,
>
> It seems that the linux-firmware commit ed10eae8 introduced a regression
> causing the firmware to fail on Intel Corporation Device a876 (rev 10).
> The next update to the firmware images in 7df47664 did not remedy this.
>
> For dmesg extracts and other details, see:
> https://bugzilla.kernel.org/show_bug.cgi?id=221637 (Upstream bug report
> where Thorsten informed us that we were sent to the wrong place)
> https://gitlab.archlinux.org/archlinux/packaging/packages/linux-firmware/-/work_items/45
> (Downstream bug report by Pierre-Olivier)
> https://github.com/NixOS/nixpkgs/issues/530344 (Downstream bug report by
> me)
>
> Please let us know if you need any further information. I’m sure both of
> us would be happier to have working Bluetooth with current firmware
> rather than at most one of these.
>
> Kind regards,
> Bianca
>
> ed10eae8: linux-firmware: Update firmware file for Intel BlazarI core
>
> https://gitlab.com/kernel-firmware/linux-firmware/-/commit/ed10eae8facb3b4bf2da7104cec95afdf0209114
> 7df47664: linux-firmware: Update firmware file for Intel BlazarI core
>
> https://gitlab.com/kernel-firmware/linux-firmware/-/commit/7df47664dd1d94111858b3224c15908517c73e73
> Merge Request for ed10eae8: https://gitlab.com/kernel-firmware/linux-firmware/-/merge_requests/955
> Merge Request for 7df47664: https://gitlab.com/kernel-firmware/linux-firmware/-/merge_requests/1018
>
> #regzbot introduced: ed10eae8facb3b4bf2da7104cec95afdf0209114
> #regzbot link: https://bugzilla.kernel.org/show_bug.cgi?id=221637
> [Bugzilla report]
> #regzbot monitor: https://lore.kernel.org/linux-bluetooth/bug-221637-62941@https.bugzilla.kernel.org%2F/
> #regzbot link: https://gitlab.archlinux.org/archlinux/packaging/packages/linux-firmware/-/work_items/45 [Arch downstream report]
> #regzbot link: https://github.com/NixOS/nixpkgs/issues/530344 [NixOS downstream report]
> #regzbot link: https://discussion.fedoraproject.org/t/bluetooth-not-working-on-fedora-cosmic-atomic-intel-core-ultra-7-kernel-7-0-8-200fc44-x86-64/191881 [Fedora downstream report]
^ permalink raw reply
* [REGRESSION] Intel Corporation Device a876 (rev 10) firmware crashes since ed10eae8
From: Bianca Fürstenau @ 2026-06-13 21:09 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: linux-bluetooth, regressions, Ravindra, Sai Teja Aluvala,
Thorsten Leemhuis, Mario Limonciello, Pierre-Olivier Vallès
Dear Dmitry,
It seems that the linux-firmware commit ed10eae8 introduced a regression
causing the firmware to fail on Intel Corporation Device a876 (rev 10).
The next update to the firmware images in 7df47664 did not remedy this.
For dmesg extracts and other details, see:
https://bugzilla.kernel.org/show_bug.cgi?id=221637 (Upstream bug report
where Thorsten informed us that we were sent to the wrong place)
https://gitlab.archlinux.org/archlinux/packaging/packages/linux-firmware/-/work_items/45
(Downstream bug report by Pierre-Olivier)
https://github.com/NixOS/nixpkgs/issues/530344 (Downstream bug report by me)
Please let us know if you need any further information. I’m sure both of
us would be happier to have working Bluetooth with current firmware
rather than at most one of these.
Kind regards,
Bianca
ed10eae8: linux-firmware: Update firmware file for Intel BlazarI core
https://gitlab.com/kernel-firmware/linux-firmware/-/commit/ed10eae8facb3b4bf2da7104cec95afdf0209114
7df47664: linux-firmware: Update firmware file for Intel BlazarI core
https://gitlab.com/kernel-firmware/linux-firmware/-/commit/7df47664dd1d94111858b3224c15908517c73e73
Merge Request for ed10eae8:
https://gitlab.com/kernel-firmware/linux-firmware/-/merge_requests/955
Merge Request for 7df47664:
https://gitlab.com/kernel-firmware/linux-firmware/-/merge_requests/1018
#regzbot introduced: ed10eae8facb3b4bf2da7104cec95afdf0209114
#regzbot link: https://bugzilla.kernel.org/show_bug.cgi?id=221637
[Bugzilla report]
#regzbot monitor:
https://lore.kernel.org/linux-bluetooth/bug-221637-62941@https.bugzilla.kernel.org%2F/
#regzbot link:
https://gitlab.archlinux.org/archlinux/packaging/packages/linux-firmware/-/work_items/45
[Arch downstream report]
#regzbot link: https://github.com/NixOS/nixpkgs/issues/530344 [NixOS
downstream report]
#regzbot link:
https://discussion.fedoraproject.org/t/bluetooth-not-working-on-fedora-cosmic-atomic-intel-core-ultra-7-kernel-7-0-8-200fc44-x86-64/191881
[Fedora downstream report]
^ permalink raw reply
* RE: [v2] Bluetooth: hci_uart: clear HCI_UART_SENDING when write_work is canceled
From: bluez.test.bot @ 2026-06-13 19:19 UTC (permalink / raw)
To: linux-bluetooth, pav
In-Reply-To: <9fdead8517c36f37c0b23b7b60f590d735792cfa.1781375875.git.pav@iki.fi>
[-- Attachment #1: Type: text/plain, Size: 988 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=1111109
---Test result---
Test Summary:
CheckPatch PASS 0.62 seconds
VerifyFixes PASS 0.09 seconds
VerifySignedoff PASS 0.08 seconds
GitLint PASS 0.24 seconds
SubjectPrefix PASS 0.08 seconds
BuildKernel PASS 25.09 seconds
CheckAllWarning PASS 27.75 seconds
CheckSparse PASS 26.42 seconds
BuildKernel32 PASS 24.68 seconds
TestRunnerSetup PASS 530.62 seconds
IncrementalBuild PASS 23.82 seconds
https://github.com/bluez/bluetooth-next/pull/313
---
Regards,
Linux Bluetooth
^ permalink raw reply
* [PATCH v2] Bluetooth: hci_uart: clear HCI_UART_SENDING when write_work is canceled
From: Pauli Virtanen @ 2026-06-13 18:43 UTC (permalink / raw)
To: linux-bluetooth
Cc: Pauli Virtanen, marcel, luiz.dentz, 25181214217, linux-kernel,
stable
In-Reply-To: <6888691461070a011d31632e6dcbfd73016dcc6e.1781364475.git.pav@iki.fi>
HCI_UART_SENDING bit in tx_state means write_work is pending and blocks
queueing it again. Currently this bit is not cleared when canceling the
work in hci_uart_close(), which blocks future writes when device is
reopened later if write_work was pending.
Fix by clearing HCI_UART_SENDING when canceling the work.
Also make clearing of tx_skb safe by using disable_work_sync +
enable_work instead of just cancel_work_sync. hci_uart_flush() purges
the proto tx queue so we can cancel the pending write_work there,
instead of doing it just in hci_uart_close(). Re-enable and possibly
requeue the work after queue flush.
Fixes: c1bb9336ae6b ("Bluetooth: hci_uart: fix UAFs and race conditions in close and init paths")
Link: https://lore.kernel.org/linux-bluetooth/07e0a28650773abec711ee492fdb1bf5d21a6c98.camel@iki.fi/
Cc: stable@vger.kernel.org
Signed-off-by: Pauli Virtanen <pav@iki.fi>
---
Notes:
v2:
- extend disable_work section to after proto->flush where the queue is
supposed to be empty
- clear HCI_UART_SENDING after enable_work() to avoid concurrent
bt_tx_wakeup() having set it
- requeue write_work in case something concurrently added more tx
drivers/bluetooth/hci_ldisc.c | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/drivers/bluetooth/hci_ldisc.c b/drivers/bluetooth/hci_ldisc.c
index 47f4902b40b4..2ad42c3bbaac 100644
--- a/drivers/bluetooth/hci_ldisc.c
+++ b/drivers/bluetooth/hci_ldisc.c
@@ -239,6 +239,8 @@ static int hci_uart_flush(struct hci_dev *hdev)
BT_DBG("hdev %p tty %p", hdev, tty);
+ disable_work_sync(&hu->write_work);
+
if (hu->tx_skb) {
kfree_skb(hu->tx_skb); hu->tx_skb = NULL;
}
@@ -254,6 +256,14 @@ static int hci_uart_flush(struct hci_dev *hdev)
percpu_up_read(&hu->proto_lock);
+ /* Resume TX. Also reschedule in case work was queued concurrently;
+ * this may schedule write_work although there's nothing to do.
+ */
+ enable_work(&hu->write_work);
+ clear_bit(HCI_UART_SENDING, &hu->tx_state);
+ if (test_bit(HCI_UART_TX_WAKEUP, &hu->tx_state))
+ hci_uart_tx_wakeup(hu);
+
return 0;
}
@@ -271,12 +281,8 @@ static int hci_uart_open(struct hci_dev *hdev)
/* Close device */
static int hci_uart_close(struct hci_dev *hdev)
{
- struct hci_uart *hu = hci_get_drvdata(hdev);
-
BT_DBG("hdev %p", hdev);
- cancel_work_sync(&hu->write_work);
-
hci_uart_flush(hdev);
hdev->flush = NULL;
return 0;
--
2.54.0
^ permalink raw reply related
* RE: Functional/integration testing
From: bluez.test.bot @ 2026-06-13 17:09 UTC (permalink / raw)
To: linux-bluetooth, pav
In-Reply-To: <476910717b76052dd8d3673b92b00bc9c628b349.1781365708.git.pav@iki.fi>
[-- Attachment #1: Type: text/plain, Size: 1990 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=1111076
---Test result---
Test Summary:
CheckPatch FAIL 2.09 seconds
GitLint PASS 1.46 seconds
BuildEll PASS 21.37 seconds
BluezMake PASS 624.17 seconds
MakeCheck PASS 19.31 seconds
MakeDistcheck PASS 238.73 seconds
CheckValgrind PASS 276.72 seconds
CheckSmatch PASS 328.01 seconds
bluezmakeextell PASS 167.45 seconds
IncrementalBuild PASS 644.71 seconds
ScanBuild PASS 973.07 seconds
Details
##############################
Test: CheckPatch - FAIL
Desc: Run checkpatch.pl script
Output:
[BlueZ,v6,2/6] test: add functional/integration testing framework
ERROR:EXECUTE_PERMISSIONS: do not set execute permissions for source files
#422: FILE: test/test-functional
ERROR:EXECUTE_PERMISSIONS: do not set execute permissions for source files
#449: FILE: test/test-functional-attach
/github/workspace/src/patch/14627534.patch total: 2 errors, 0 warnings, 279 lines checked
NOTE: For some of the reported defects, checkpatch may be able to
mechanically convert to the typical style using --fix or --fix-inplace.
/github/workspace/src/patch/14627534.patch has style problems, please review.
NOTE: Ignored message types: COMMIT_MESSAGE COMPLEX_MACRO CONST_STRUCT FILE_PATH_CHANGES MISSING_SIGN_OFF PREFER_PACKED SPDX_LICENSE_TAG SPLIT_STRING SSCANF_TO_KSTRTO
NOTE: If any of the errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.
https://github.com/bluez/bluez/pull/2228
---
Regards,
Linux Bluetooth
^ permalink raw reply
* RE: [BlueZ] emulator: btvirt: support debug for -s socket server
From: bluez.test.bot @ 2026-06-13 17:04 UTC (permalink / raw)
To: linux-bluetooth, pav
In-Reply-To: <11cf79f1f980e5da2202f84bf66e3847048cc34d.1781363977.git.pav@iki.fi>
[-- Attachment #1: Type: text/plain, Size: 2186 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=1111062
---Test result---
Test Summary:
CheckPatch FAIL 0.36 seconds
GitLint FAIL 0.22 seconds
BuildEll PASS 20.09 seconds
BluezMake PASS 678.74 seconds
CheckSmatch PASS 354.26 seconds
bluezmakeextell PASS 184.28 seconds
IncrementalBuild PASS 674.12 seconds
ScanBuild PASS 1058.31 seconds
Details
##############################
Test: CheckPatch - FAIL
Desc: Run checkpatch.pl script
Output:
[BlueZ] emulator: btvirt: support debug for -s socket server
WARNING:COMMIT_LOG_LONG_LINE: Possible unwrapped commit description (prefer a maximum 75 chars per line)
#85:
bredrle: host10: > 01 13 0c f8 00 00 00 00 00 00 00 00 00 00 00 00 ................
/github/workspace/src/patch/14627485.patch total: 0 errors, 1 warnings, 113 lines checked
NOTE: For some of the reported defects, checkpatch may be able to
mechanically convert to the typical style using --fix or --fix-inplace.
/github/workspace/src/patch/14627485.patch has style problems, please review.
NOTE: Ignored message types: COMMIT_MESSAGE COMPLEX_MACRO CONST_STRUCT FILE_PATH_CHANGES MISSING_SIGN_OFF PREFER_PACKED SPDX_LICENSE_TAG SPLIT_STRING SSCANF_TO_KSTRTO
NOTE: If any of the errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.
##############################
Test: GitLint - FAIL
Desc: Run gitlint
Output:
[BlueZ] emulator: btvirt: support debug for -s socket server
7: B1 Line exceeds max length (84>80): "bredrle: host10: > 01 13 0c f8 00 00 00 00 00 00 00 00 00 00 00 00 ................"
8: B1 Line exceeds max length (84>80): "bredrle: host10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................"
https://github.com/bluez/bluez/pull/2227
---
Regards,
Linux Bluetooth
^ permalink raw reply
* [Bug 73081] Fail to setup Bluetooth on Dell Venue 11 Pro
From: bugzilla-daemon @ 2026-06-13 16:56 UTC (permalink / raw)
To: linux-bluetooth
In-Reply-To: <bug-73081-62941@https.bugzilla.kernel.org/>
https://bugzilla.kernel.org/show_bug.cgi?id=73081
--- Comment #13 from Paul Menzel (pmenzel+bugzilla.kernel.org@molgen.mpg.de) ---
Yes, as @Hytham is about the Dell Venue 8 Pro 5830/0RK4PK anyway, and this
Kernel Bugzilla issue is about the Dell Venue 11 Pro, let’s continue in the
GitHub issue.
--
You may reply to this email to add a comment.
You are receiving this mail because:
You are the assignee for the bug.
^ permalink raw reply
* Re: [PATCH BlueZ v5 00/16] Functional/integration testing
From: Pauli Virtanen @ 2026-06-13 16:34 UTC (permalink / raw)
To: Luiz Augusto von Dentz; +Cc: linux-bluetooth
In-Reply-To: <CABBYNZLBeuYHTNaBAkX_KC06rrQMMZn_Ks0sz2KQPTLpga5Lrw@mail.gmail.com>
Hi,
pe, 2026-06-12 kello 17:13 -0300, Luiz Augusto von Dentz kirjoitti:
> Hi Pauli,
>
> On Wed, May 13, 2026 at 1:35 PM Pauli Virtanen <pav@iki.fi> wrote:
> >
> > Add framework for writing tests simulating "real" environments where
> > BlueZ and other parts of the stack run on different virtual machine
> > hosts that communicate with each other.
[clip]
> >
> > 21 files changed, 1177 insertions(+), 86 deletions(-)
> > create mode 100644 doc/test-functional.rst
> > create mode 100644 test/functional/__init__.py
> > create mode 100644 test/functional/conftest.py
> > create mode 100644 test/functional/requirements.txt
> > create mode 100644 test/functional/test_agent.py
> > create mode 100644 test/functional/test_bluetoothctl_vm.py
> > create mode 100644 test/functional/test_btmgmt_vm.py
> > create mode 100644 test/functional/test_obex.py
> > create mode 100644 test/functional/test_tests.py
> > create mode 100644 test/pytest.ini
> > create mode 100755 test/test-functional
> > create mode 100755 test/test-functional-attach
> >
> > --
> > 2.54.0
>
> Do you mind resending the remaining changes? I'd like to see how it
> works; it seems you've already integrated with things like `make
> check`, right?
Sent v6.
Note it's failing on current bluetooth-next kernel due to hci_uart bug
introduced recently, needs something like this to fix it:
https://lore.kernel.org/linux-bluetooth/6888691461070a011d31632e6dcbfd73016dcc6e.1781364475.git.pav@iki.fi/
^ permalink raw reply
* RE: Bluetooth: hci_uart: clear HCI_UART_SENDING when write_work is canceled
From: bluez.test.bot @ 2026-06-13 16:25 UTC (permalink / raw)
To: linux-bluetooth, pav
In-Reply-To: <6888691461070a011d31632e6dcbfd73016dcc6e.1781364475.git.pav@iki.fi>
[-- Attachment #1: Type: text/plain, Size: 988 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=1111067
---Test result---
Test Summary:
CheckPatch PASS 0.72 seconds
VerifyFixes PASS 0.13 seconds
VerifySignedoff PASS 0.13 seconds
GitLint PASS 0.32 seconds
SubjectPrefix PASS 0.12 seconds
BuildKernel PASS 25.26 seconds
CheckAllWarning PASS 27.81 seconds
CheckSparse PASS 26.40 seconds
BuildKernel32 PASS 24.70 seconds
TestRunnerSetup PASS 524.23 seconds
IncrementalBuild PASS 25.70 seconds
https://github.com/bluez/bluetooth-next/pull/312
---
Regards,
Linux Bluetooth
^ permalink raw reply
* [bluez/bluez] 277b5b: doc: add functional/integration testing documentation
From: Pauli Virtanen @ 2026-06-13 16:14 UTC (permalink / raw)
To: linux-bluetooth
Branch: refs/heads/1111076
Home: https://github.com/bluez/bluez
Commit: 277b5b08b658b1788cc4e1e365e49cdf7b0adc54
https://github.com/bluez/bluez/commit/277b5b08b658b1788cc4e1e365e49cdf7b0adc54
Author: Pauli Virtanen <pav@iki.fi>
Date: 2026-06-13 (Sat, 13 Jun 2026)
Changed paths:
A doc/test-functional.rst
Log Message:
-----------
doc: add functional/integration testing documentation
Add documentation for functional/integration test suite.
Commit: a5f3028cbfbc8211779bf15ec8badd1d1d642bf1
https://github.com/bluez/bluez/commit/a5f3028cbfbc8211779bf15ec8badd1d1d642bf1
Author: Pauli Virtanen <pav@iki.fi>
Date: 2026-06-13 (Sat, 13 Jun 2026)
Changed paths:
A test/functional/__init__.py
A test/functional/conftest.py
A test/functional/requirements.txt
A test/functional/test_bluetoothctl_vm.py
A test/functional/test_btmgmt_vm.py
A test/pytest.ini
A test/test-functional
A test/test-functional-attach
Log Message:
-----------
test: add functional/integration testing framework
Add framework for writing tests simulating "real" environments where
BlueZ and other parts of the stack run on different virtual machine
hosts that communicate with each other.
Add some smoke tests for bluetoothctl and btmgmt.
The implementation for the VM setup is maintained separately in the
pytest-bluezenv plugin, https://pypi.org/project/pytest-bluezenv
Implements:
- RPC communication with tester instances running each of the VM hosts,
so that tests can be written on the parent host which coordinates the
execution.
- Extensible way to add stateful test-specific code inside the VM
instances
- Logging control: output from different processes running inside the VM
are separated and can be filtered.
- Test runner framework with Pytest, factored into a pytest plugin
- Grouping tests to minimize VM reboots
- Redirecting USB controllers to use for testing
There is no requirement that the tests spawn VM instances.
Commit: 5b980c4a877fdd3b6460dfd8a517e8c75b4e2bf2
https://github.com/bluez/bluez/commit/5b980c4a877fdd3b6460dfd8a517e8c75b4e2bf2
Author: Pauli Virtanen <pav@iki.fi>
Date: 2026-06-13 (Sat, 13 Jun 2026)
Changed paths:
M Makefile.am
M configure.ac
Log Message:
-----------
build: add functional testing target
This adds check-functional: target that runs the functional test suite.
Also add a --enable-functional-testing=<kernel-image> argument for
configure that can be used to include it in the check: make target,
possibly with a predefined kernel image.
Commit: e27780d7bbf553fc34810f8bf5e7e8bbdbbcfc8e
https://github.com/bluez/bluez/commit/e27780d7bbf553fc34810f8bf5e7e8bbdbbcfc8e
Author: Pauli Virtanen <pav@iki.fi>
Date: 2026-06-13 (Sat, 13 Jun 2026)
Changed paths:
A test/functional/test_tests.py
Log Message:
-----------
test: functional: impose Python code formatting
Check Python code formatting of the functional test suite.
Commit: b5e1ffdb14fa3a5bf11e57e41e1f67cf6eea1744
https://github.com/bluez/bluez/commit/b5e1ffdb14fa3a5bf11e57e41e1f67cf6eea1744
Author: Pauli Virtanen <pav@iki.fi>
Date: 2026-06-13 (Sat, 13 Jun 2026)
Changed paths:
A test/functional/test_agent.py
Log Message:
-----------
test: functional: add some Agent1 interface tests
Add test
test/functional/test_agent.py::test_agent_pair_bredr
Commit: 6b0711ccbeee668ada328d5e4eff34f086222402
https://github.com/bluez/bluez/commit/6b0711ccbeee668ada328d5e4eff34f086222402
Author: Pauli Virtanen <pav@iki.fi>
Date: 2026-06-13 (Sat, 13 Jun 2026)
Changed paths:
A test/functional/test_obex.py
Log Message:
-----------
test: functional: add basic obex file transfer tests
Add tests for Obex DBus API and obexctl
test/functional/test_obex.py::test_obex_ftp_get
test/functional/test_obex.py::test_obex_ftp_list
test/functional/test_obex.py::test_obexctl_list
Compare: https://github.com/bluez/bluez/compare/277b5b08b658%5E...6b0711ccbeee
To unsubscribe from these emails, change your notification settings at https://github.com/bluez/bluez/settings/notifications
^ permalink raw reply
* [bluez/bluez] 13b4ac: emulator: btvirt: support debug for -s socket server
From: Pauli Virtanen @ 2026-06-13 16:14 UTC (permalink / raw)
To: linux-bluetooth
Branch: refs/heads/1111062
Home: https://github.com/bluez/bluez
Commit: 13b4acfd7e2369e64d7b4e8d0f7b6c029d7768d0
https://github.com/bluez/bluez/commit/13b4acfd7e2369e64d7b4e8d0f7b6c029d7768d0
Author: Pauli Virtanen <pav@iki.fi>
Date: 2026-06-13 (Sat, 13 Jun 2026)
Changed paths:
M emulator/main.c
M emulator/server.c
M emulator/server.h
Log Message:
-----------
emulator: btvirt: support debug for -s socket server
Support btdev debug -d when using socket server -s.
$ btvirt -d -s
...
bredrle: host10: > 01 13 0c f8 00 00 00 00 00 00 00 00 00 00 00 00 ................
bredrle: host10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
...
To unsubscribe from these emails, change your notification settings at https://github.com/bluez/bluez/settings/notifications
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox