2022-07-28 21:10:00

by Luiz Augusto von Dentz

[permalink] [raw]
Subject: [PATCH] Bluetooth: hci_conn: Fix updating ISO QoS PHY

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

BT_ISO_QOS has different semantics when it comes to QoS PHY as it uses
0x00 to disable a direction but that value is invalid over HCI and
sockets using DEFER_SETUP to connect may attempt to use hci_bind_cis
multiple times in order to detect if the parameters have changed, so to
fix the code will now just mirror the PHY for the parameters of
HCI_OP_LE_SET_CIG_PARAMS and will not update the PHY of the socket
leaving it disabled.

Fixes: 26afbd826ee32 ("Bluetooth: Add initial implementation of CIS connections")
Signed-off-by: Luiz Augusto von Dentz <[email protected]>
---
net/bluetooth/hci_conn.c | 11 ++---------
1 file changed, 2 insertions(+), 9 deletions(-)

diff --git a/net/bluetooth/hci_conn.c b/net/bluetooth/hci_conn.c
index f54864e19866..9777e7b109ee 100644
--- a/net/bluetooth/hci_conn.c
+++ b/net/bluetooth/hci_conn.c
@@ -1551,8 +1551,8 @@ static void cis_add(struct iso_list_data *d, struct bt_iso_qos *qos)
cis->cis_id = qos->cis;
cis->c_sdu = cpu_to_le16(qos->out.sdu);
cis->p_sdu = cpu_to_le16(qos->in.sdu);
- cis->c_phy = qos->out.phy;
- cis->p_phy = qos->in.phy;
+ cis->c_phy = qos->out.phy ? qos->out.phy : qos->in.phy;
+ cis->p_phy = qos->in.phy ? qos->in.phy : qos->out.phy;
cis->c_rtn = qos->out.rtn;
cis->p_rtn = qos->in.rtn;

@@ -1735,13 +1735,6 @@ struct hci_conn *hci_bind_cis(struct hci_dev *hdev, bdaddr_t *dst,
if (!qos->in.latency)
qos->in.latency = qos->out.latency;

- /* Mirror PHYs that are disabled as SDU will be set to 0 */
- if (!qos->in.phy)
- qos->in.phy = qos->out.phy;
-
- if (!qos->out.phy)
- qos->out.phy = qos->in.phy;
-
if (!hci_le_set_cig_params(cis, qos)) {
hci_conn_drop(cis);
return ERR_PTR(-EINVAL);
--
2.37.1


2022-07-28 22:12:04

by bluez.test.bot

[permalink] [raw]
Subject: RE: Bluetooth: hci_conn: Fix updating ISO QoS PHY

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

---Test result---

Test Summary:
CheckPatch PASS 2.55 seconds
GitLint PASS 0.88 seconds
SubjectPrefix PASS 0.59 seconds
BuildKernel PASS 33.41 seconds
BuildKernel32 PASS 28.76 seconds
Incremental Build with patchesPASS 40.18 seconds
TestRunner: Setup PASS 478.62 seconds
TestRunner: l2cap-tester PASS 16.65 seconds
TestRunner: bnep-tester PASS 6.22 seconds
TestRunner: mgmt-tester PASS 98.96 seconds
TestRunner: rfcomm-tester PASS 9.47 seconds
TestRunner: sco-tester PASS 9.24 seconds
TestRunner: smp-tester PASS 9.25 seconds
TestRunner: userchan-tester PASS 6.39 seconds



---
Regards,
Linux Bluetooth

2022-07-29 00:11:06

by patchwork-bot+bluetooth

[permalink] [raw]
Subject: Re: [PATCH] Bluetooth: hci_conn: Fix updating ISO QoS PHY

Hello:

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

On Thu, 28 Jul 2022 14:05:56 -0700 you wrote:
> From: Luiz Augusto von Dentz <[email protected]>
>
> BT_ISO_QOS has different semantics when it comes to QoS PHY as it uses
> 0x00 to disable a direction but that value is invalid over HCI and
> sockets using DEFER_SETUP to connect may attempt to use hci_bind_cis
> multiple times in order to detect if the parameters have changed, so to
> fix the code will now just mirror the PHY for the parameters of
> HCI_OP_LE_SET_CIG_PARAMS and will not update the PHY of the socket
> leaving it disabled.
>
> [...]

Here is the summary with links:
- Bluetooth: hci_conn: Fix updating ISO QoS PHY
https://git.kernel.org/bluetooth/bluetooth-next/c/8ce91829ab3a

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