> > The only generic interface to execute asynchronously in the BH context is > > tasklet; however, it's marked deprecated and has some design flaws. To > > replace tasklets, BH workqueue support was recently added. A BH workqueue > > behaves similarly to regular workqueues except that the queued work items > > are executed in the BH context. > > > > This patch converts drivers/infiniband/* from tasklet to BH workqueue. > > No it does not, I think your changelog is wrong :( Whoops, sorry about that. I messed up the commit messages. I will fix it in v2. > > > > > Based on the work done by Tejun Heo <tj@xxxxxxxxxx> > > Branch: https://git.kernel.org/pub/scm/linux/kernel/git/tj/wq.git for-6.10 > > > > Signed-off-by: Allen Pais <allen.lkml@xxxxxxxxx> > > --- > > drivers/usb/atm/usbatm.c | 55 +++++++++++++++-------------- > > drivers/usb/atm/usbatm.h | 3 +- > > drivers/usb/core/hcd.c | 22 ++++++------ > > drivers/usb/gadget/udc/fsl_qe_udc.c | 21 +++++------ > > drivers/usb/gadget/udc/fsl_qe_udc.h | 4 +-- > > drivers/usb/host/ehci-sched.c | 2 +- > > drivers/usb/host/fhci-hcd.c | 3 +- > > drivers/usb/host/fhci-sched.c | 10 +++--- > > drivers/usb/host/fhci.h | 5 +-- > > drivers/usb/host/xhci-dbgcap.h | 3 +- > > drivers/usb/host/xhci-dbgtty.c | 15 ++++---- > > include/linux/usb/cdc_ncm.h | 2 +- > > include/linux/usb/usbnet.h | 2 +- > > 13 files changed, 76 insertions(+), 71 deletions(-) > > > > diff --git a/drivers/usb/atm/usbatm.c b/drivers/usb/atm/usbatm.c > > index 2da6615fbb6f..74849f24e52e 100644 > > --- a/drivers/usb/atm/usbatm.c > > +++ b/drivers/usb/atm/usbatm.c > > @@ -17,7 +17,7 @@ > > * - Removed the limit on the number of devices > > * - Module now autoloads on device plugin > > * - Merged relevant parts of sarlib > > - * - Replaced the kernel thread with a tasklet > > + * - Replaced the kernel thread with a work > > a "work"? will fix the comments. > > > * - New packet transmission code > > * - Changed proc file contents > > * - Fixed all known SMP races > > @@ -68,6 +68,7 @@ > > #include <linux/wait.h> > > #include <linux/kthread.h> > > #include <linux/ratelimit.h> > > +#include <linux/workqueue.h> > > > > #ifdef VERBOSE_DEBUG > > static int usbatm_print_packet(struct usbatm_data *instance, const unsigned char *data, int len); > > @@ -249,7 +250,7 @@ static void usbatm_complete(struct urb *urb) > > /* vdbg("%s: urb 0x%p, status %d, actual_length %d", > > __func__, urb, status, urb->actual_length); */ > > > > - /* Can be invoked from task context, protect against interrupts */ > > + /* Can be invoked from work context, protect against interrupts */ > > "workqueue"? This too seems wrong. > > Same for other comment changes in this patch. Thanks for the quick review, I will fix the comments and send out v2. - Alle > thanks, > > greg k-h >