On Fri, Mar 20, 2020 at 10:25:41AM +1100, Julian Calaby wrote: > > +++ b/drivers/usb/gadget/function/f_fs.c > > @@ -1703,7 +1703,7 @@ static void ffs_data_put(struct ffs_data > > pr_info("%s(): freeing\n", __func__); > > ffs_data_clear(ffs); > > BUG_ON(waitqueue_active(&ffs->ev.waitq) || > > - waitqueue_active(&ffs->ep0req_completion.wait) || > > + swait_active(&ffs->ep0req_completion.wait) || > > This looks like some code is reaching deep into the dirty dark corners > of the completion implementation, should there be some wrapper around > this to hide that? Or just remote it entirely..