Thread (50 messages) 50 messages, 20 authors, 2024-06-03

Re: [PATCH 4/9] USB: Convert from tasklet to BH workqueue

From: Allen <hidden>
Date: 2024-03-27 16:58:24
Also in: asahi, dmaengine, imx, linux-arm-msm, linux-hyperv, linux-media, linux-mediatek, linux-mips, linux-mmc, linux-omap, linux-rdma, linux-renesas-soc, linux-riscv, linux-s390, linux-sunxi, linux-tegra, linux-usb, lkml, netdev

quoted
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.
quoted
Based on the work done by Tejun Heo [off-list ref]
Branch: https://git.kernel.org/pub/scm/linux/kernel/git/tj/wq.git for-6.10

Signed-off-by: Allen Pais <redacted>
---
 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.
quoted
  *           - 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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help