On Wed, Mar 27, 2024 at 04:03:09PM +0000, Allen Pais wrote: > 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 :( > > 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"? > * - 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, greg k-h