Messages in this thread | ![/](/images/icornerl.gif) | | Subject | Re: [syzbot] BUG: sleeping function called from invalid context in hci_cmd_sync_cancel | From | Oliver Neukum <> | Date | Thu, 9 Dec 2021 14:21:20 +0100 |
| |
On 09.12.21 13:46, Benjamin Berg wrote: Hi, > On Thu, 2021-12-09 at 11:06 +0100, Oliver Neukum wrote: >> As __cancel_work_timer can be called from hci_cmd_sync_cancel() this is >> just not >> an approach you can take. It looks like asynchronously canceling the >> scheduled work >> would result in a race, so I would for now just revert. > Right, so this needs to be pushed into a workqueue instead, I suppose. It looks like overkill, but I have no good alternative to offer either. > >> What issue exactly is this trying to fix or improve? > The problem is aborting long-running synchronous operations. i.e. > without this patchset, USB enumeration will hang for 10s if a USB > bluetooth device disappears during firmware loading. This is because > even though the USB device is gone and all URB submissions fail, the > operation will only be aborted after the internal timeout happens. > I see. Something ought to be done. The issue is in good hands.
Thanks Oliver
| ![\](/images/icornerr.gif) |