From 5cb23f1ae6f3ed71bb67991888107014ea309759 Mon Sep 17 00:00:00 2001 From: Andrew Drake Date: Thu, 30 Jun 2022 00:39:58 -0700 Subject: [PATCH] adapter: Fix advertising monitor on Linux 5.12-5.17 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 Signed-off-by: Manika Shrivastava Signed-off-by: Ayush Garg --- src/adapter.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/adapter.c b/src/adapter.c index 6ec6ce2..8d3933c 100644 --- a/src/adapter.c +++ b/src/adapter.c @@ -12085,7 +12085,9 @@ void btd_adapter_update_found_device(struct btd_adapter *adapter, #ifndef TIZEN_FEATURE_BLUEZ_MODIFY 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); -- 2.7.4