Messages in this thread | | | From | Archie Pusaka <> | Date | Mon, 25 Jul 2022 18:09:44 +0800 | Subject | Re: [PATCH] Bluetooth: hci_sync: Use safe loop when adding accept list |
| |
Hi Eric and Luiz,
> "the userspace can still remove devices" is a bit vague. I mean removing devices via MGMT command.
> It seems that the issue at hand is that hci_le_add_accept_list_sync() can > move the current item from pend_le_conns / pend_le_reports lists ? The issue is, hci_le_add_accept_list_sync() is iterating the lists when the content is being removed elsewhere.
> Hopefully these lists can not be changed by other threads while > hci_update_accept_list_sync() is running ? Probably. Looks like Luiz also thinks the same way.
> Please add a Fixes: tag Unfortunately I don't know when this is introduced.
> Hmm if this happens it means other threads are actually interfering > with cmd_sync queue which is something that is probably a bug since > the whole point of cmd_sync is to serialize the commands making it > easier to do more complex state updates (such accept+resolve list > updates) Thanks, I haven't fully grasped the intention of having hci_sync and how to properly use it.
> we could perhaps still apply this change as a workaround but > ultimately I think it would be better to add a mgmt-tester reproducing > the issue and have a proper fix of the code updating the list from a > different thread. Agree. Having said that, I don't think currently I have the time to invest in writing a test and a proper fix, so my apologies on this.
Best, Archie
| |