diff mbox series

[BlueZ] adapter: Fix advertising monitor on Linux 5.12-5.17

Message ID 20220630073958.34468-1-adrake@adrake.org (mailing list archive)
State Accepted
Commit a69fa692b094347e3a1dbcd9198d426f671dec0c
Headers show
Series [BlueZ] adapter: Fix advertising monitor on Linux 5.12-5.17 | expand

Checks

Context Check Description
tedd_an/pre-ci_am success Success
tedd_an/checkpatch success Checkpatch PASS
tedd_an/gitlint success Gitlint PASS
tedd_an/setupell success Setup ELL PASS
tedd_an/buildprep success Build Prep PASS
tedd_an/build success Build Configuration PASS
tedd_an/makecheck success Make Check PASS
tedd_an/makecheckvalgrind success Make Check PASS
tedd_an/makedistcheck success Make Distcheck PASS
tedd_an/build_extell success Build External ELL PASS
tedd_an/build_extell_make success Build Make with External ELL PASS

Commit Message

Andrew Drake June 30, 2022, 7:39 a.m. UTC
The existing code assumes that, if a device supports advertising monitor
offload, DEVICE_FOUND events can be ignored since the kernel will send
ADV_MONITOR_DEVICE_FOUND events instead. Unfortunately, these new events
were added in 5.18, but offload was added in 5.12. This patch adds a
check on the MGMT API version so we can process the older DEVICE_FOUND
events when the new events are not supported.

Fixes: https://github.com/bluez/bluez/issues/357
---
 src/adapter.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

bluez.test.bot@gmail.com June 30, 2022, 9:37 a.m. UTC | #1
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=655292

---Test result---

Test Summary:
CheckPatch                    PASS      1.45 seconds
GitLint                       PASS      1.01 seconds
Prep - Setup ELL              PASS      43.79 seconds
Build - Prep                  PASS      0.66 seconds
Build - Configure             PASS      8.75 seconds
Build - Make                  PASS      1446.34 seconds
Make Check                    PASS      11.94 seconds
Make Check w/Valgrind         PASS      451.64 seconds
Make Distcheck                PASS      238.86 seconds
Build w/ext ELL - Configure   PASS      8.74 seconds
Build w/ext ELL - Make        PASS      1428.94 seconds
Incremental Build with patchesPASS      0.00 seconds



---
Regards,
Linux Bluetooth
patchwork-bot+bluetooth@kernel.org July 13, 2022, 9:30 p.m. UTC | #2
Hello:

This patch was applied to bluetooth/bluez.git (master)
by Luiz Augusto von Dentz <luiz.von.dentz@intel.com>:

On Thu, 30 Jun 2022 00:39:58 -0700 you wrote:
> The existing code assumes that, if a device supports advertising monitor
> offload, DEVICE_FOUND events can be ignored since the kernel will send
> ADV_MONITOR_DEVICE_FOUND events instead. Unfortunately, these new events
> were added in 5.18, but offload was added in 5.12. This patch adds a
> check on the MGMT API version so we can process the older DEVICE_FOUND
> events when the new events are not supported.
> 
> [...]

Here is the summary with links:
  - [BlueZ] adapter: Fix advertising monitor on Linux 5.12-5.17
    https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=a69fa692b094

You are awesome, thank you!
diff mbox series

Patch

diff --git a/src/adapter.c b/src/adapter.c
index 16da20034..62ca42ffb 100644
--- a/src/adapter.c
+++ b/src/adapter.c
@@ -6909,7 +6909,9 @@  void btd_adapter_update_found_device(struct btd_adapter *adapter,
 	bool duplicate = false;
 	struct queue *matched_monitors = NULL;
 
-	if (!btd_adv_monitor_offload_enabled(adapter->adv_monitor_manager)) {
+	if (!btd_adv_monitor_offload_enabled(adapter->adv_monitor_manager) ||
+				(MGMT_VERSION(mgmt_version, mgmt_revision) <
+							MGMT_VERSION(1, 22))) {
 		if (bdaddr_type != BDADDR_BREDR)
 			ad = bt_ad_new_with_data(data_len, data);