2021-01-25 19:40:08

by Sonny Sasaka

[permalink] [raw]
Subject: [PATCH BlueZ v3] input/hog: Fix double registering report value callbacks

In commit 23b69ab3e484 ("input/hog: Cache the HID report map"), we
optimized HOG reconnection by registering report value callbacks early,
but there was a bug where we also re-register the same report value
callbacks after at CCC write callback. We should handle this case by
avoiding the second callback register if we know we have done it
earlier.

---
profiles/input/hog-lib.c | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/profiles/input/hog-lib.c b/profiles/input/hog-lib.c
index 1f132aa4c..6ac14e401 100644
--- a/profiles/input/hog-lib.c
+++ b/profiles/input/hog-lib.c
@@ -336,6 +336,9 @@ static void report_ccc_written_cb(guint8 status, const guint8 *pdu,
return;
}

+ if (report->notifyid)
+ return;
+
report->notifyid = g_attrib_register(hog->attrib,
ATT_OP_HANDLE_NOTIFY,
report->value_handle,
@@ -1697,6 +1700,9 @@ bool bt_hog_attach(struct bt_hog *hog, void *gatt)
for (l = hog->reports; l; l = l->next) {
struct report *r = l->data;

+ if (r->notifyid)
+ continue;
+
r->notifyid = g_attrib_register(hog->attrib,
ATT_OP_HANDLE_NOTIFY,
r->value_handle,
--
2.29.2


2021-01-25 20:13:39

by bluez.test.bot

[permalink] [raw]
Subject: RE: [BlueZ,v3] input/hog: Fix double registering report value callbacks

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

---Test result---

##############################
Test: CheckPatch - PASS

##############################
Test: CheckGitLint - PASS

##############################
Test: CheckBuild - PASS

##############################
Test: MakeCheck - PASS



---
Regards,
Linux Bluetooth