diff options
author | Davidlohr Bueso <dave@stgolabs.net> | 2021-01-13 06:15:37 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2021-01-26 20:36:37 +0300 |
commit | 60b4c9d5c6feaf6020a424b05ca7e0c6bebe7b76 (patch) | |
tree | be7debaaf18eff5ebc4a1ae6ba6d1d585bad85c3 /drivers/usb/c67x00/c67x00-hcd.h | |
parent | 7cbcd008e104d16849e5054e69f0a3d55eaeb664 (diff) | |
download | linux-60b4c9d5c6feaf6020a424b05ca7e0c6bebe7b76.tar.xz |
usb/c67x00: Replace tasklet with work
Tasklets have long been deprecated as being too heavy on the system
by running in irq context - and this is not a performance critical
path. If a higher priority process wants to run, it must wait for
the tasklet to finish before doing so.
c67x00_do_work() will now run in process context and have further
concurrency (tasklets being serialized among themselves), but this
is done holding the c67x00->lock, so it should be fine. Furthermore,
this patch fixes the usage of the lock in the callback as otherwise
it would need to be irq-safe.
Signed-off-by: Davidlohr Bueso <dbueso@suse.de>
Link: https://lore.kernel.org/r/20210113031537.79859-1-dave@stgolabs.net
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/c67x00/c67x00-hcd.h')
-rw-r--r-- | drivers/usb/c67x00/c67x00-hcd.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/usb/c67x00/c67x00-hcd.h b/drivers/usb/c67x00/c67x00-hcd.h index 6b6b04a3fe0f..6332a6b5dce6 100644 --- a/drivers/usb/c67x00/c67x00-hcd.h +++ b/drivers/usb/c67x00/c67x00-hcd.h @@ -76,7 +76,7 @@ struct c67x00_hcd { u16 next_td_addr; u16 next_buf_addr; - struct tasklet_struct tasklet; + struct work_struct work; struct completion endpoint_disable; |