2024-04-11 18:15:20

by Luiz Augusto von Dentz

[permalink] [raw]
Subject: [PATCH BlueZ v2 1/2] shared/bap: Fix not updating location

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

Fix not updating map.location when selecting.
---
src/shared/bap.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/src/shared/bap.c b/src/shared/bap.c
index f553096dfcc6..b452461ac715 100644
--- a/src/shared/bap.c
+++ b/src/shared/bap.c
@@ -5163,12 +5163,10 @@ int bt_bap_select(struct bt_bap_pac *lpac, struct bt_bap_pac *rpac,

/* Check if there are any channels left to select */
map.count &= ~(map.count & rc->count);
- if (!map.count)
- break;
-
/* Check if there are any locations left to select */
map.location &= ~(map.location & rc->location);
- if (!map.location)
+
+ if (!map.count || !map.location)
break;

/* Check if device require AC*(i) settings */
--
2.44.0



2024-04-11 18:27:25

by Luiz Augusto von Dentz

[permalink] [raw]
Subject: [PATCH BlueZ v2 2/2] shared/bap: Make bt_bap_select fallback in case of no channel allocation

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

If channel allocation could not be matched attempt to call .select
without a channel allocation as the device might require a different
matching algorithm.

Fixes: https://github.com/bluez/bluez/issues/793
---
src/shared/bap.c | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/src/shared/bap.c b/src/shared/bap.c
index b452461ac715..cc1fa1ffbe32 100644
--- a/src/shared/bap.c
+++ b/src/shared/bap.c
@@ -5116,6 +5116,7 @@ int bt_bap_select(struct bt_bap_pac *lpac, struct bt_bap_pac *rpac,
void *user_data)
{
const struct queue_entry *lchan, *rchan;
+ int selected = 0;

if (!lpac || !rpac || !func)
return -EINVAL;
@@ -5158,8 +5159,7 @@ int bt_bap_select(struct bt_bap_pac *lpac, struct bt_bap_pac *rpac,
rc->location, &rpac->qos,
func, user_data,
lpac->user_data);
- if (count)
- (*count)++;
+ selected++;

/* Check if there are any channels left to select */
map.count &= ~(map.count & rc->count);
@@ -5175,6 +5175,16 @@ int bt_bap_select(struct bt_bap_pac *lpac, struct bt_bap_pac *rpac,
}
}

+ /* Fallback to no channel allocation since none could be matched. */
+ if (!selected) {
+ lpac->ops->select(lpac, rpac, 0, &rpac->qos, func, user_data,
+ lpac->user_data);
+ selected++;
+ }
+
+ if (count)
+ *count += selected;
+
return 0;
}

--
2.44.0


2024-04-11 18:52:13

by bluez.test.bot

[permalink] [raw]
Subject: RE: [BlueZ,v2,1/2] shared/bap: Fix not updating location

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

---Test result---

Test Summary:
CheckPatch PASS 0.92 seconds
GitLint FAIL 0.82 seconds
BuildEll PASS 24.57 seconds
BluezMake PASS 1687.02 seconds
MakeCheck PASS 13.66 seconds
MakeDistcheck PASS 180.23 seconds
CheckValgrind PASS 248.45 seconds
CheckSmatch WARNING 352.66 seconds
bluezmakeextell PASS 119.77 seconds
IncrementalBuild PASS 3011.52 seconds
ScanBuild PASS 1027.39 seconds

Details
##############################
Test: GitLint - FAIL
Desc: Run gitlint
Output:
[BlueZ,v2,2/2] shared/bap: Make bt_bap_select fallback in case of no channel allocation

WARNING: I3 - ignore-body-lines: gitlint will be switching from using Python regex 'match' (match beginning) to 'search' (match anywhere) semantics. Please review your ignore-body-lines.regex option accordingly. To remove this warning, set general.regex-style-search=True. More details: https://jorisroovers.github.io/gitlint/configuration/#regex-style-search
1: T1 Title exceeds max length (87>80): "[BlueZ,v2,2/2] shared/bap: Make bt_bap_select fallback in case of no channel allocation"
##############################
Test: CheckSmatch - WARNING
Desc: Run smatch tool with source
Output:
src/shared/bap.c:282:25: warning: array of flexible structuressrc/shared/bap.c: note: in included file:./src/shared/ascs.h:88:25: warning: array of flexible structuressrc/shared/bap.c:282:25: warning: array of flexible structuressrc/shared/bap.c: note: in included file:./src/shared/ascs.h:88:25: warning: array of flexible structuressrc/shared/bap.c:282:25: warning: array of flexible structuressrc/shared/bap.c: note: in included file:./src/shared/ascs.h:88:25: warning: array of flexible structuressrc/shared/bap.c:282:25: warning: array of flexible structuressrc/shared/bap.c: note: in included file:./src/shared/ascs.h:88:25: warning: array of flexible structuressrc/shared/bap.c:282:25: warning: array of flexible structuressrc/shared/bap.c: note: in included file:./src/shared/ascs.h:88:25: warning: array of flexible structuressrc/shared/bap.c:282:25: warning: array of flexible structuressrc/shared/bap.c: note: in included file:./src/shared/ascs.h:88:25: warning: array of flexible struct
ures


---
Regards,
Linux Bluetooth