USB: serial: mos7720: defer state restore to a workqueue
authorDavidlohr Bueso <dave@stgolabs.net>
Fri, 20 Nov 2020 04:53:00 +0000 (20:53 -0800)
committerJohan Hovold <johan@kernel.org>
Fri, 20 Nov 2020 09:35:45 +0000 (10:35 +0100)
commit053af9e6e817fe58191b0d27bc67ba329d94ced2
tree0b93cb676bb05445f4d79fa7ae3dec258eb37069
parent975323ab8f116667676c30ca3502a6757bd89e8d
USB: serial: mos7720: defer state restore to a workqueue

The parallel port restore operation currently defers writes
to a tasklet, if it sees a locked disconnect mutex. The
driver goes to a lot of trouble to ensure writes happen
in a non-blocking context, but things can be greatly
simplified if it's done in regular process context and
this is not a system performance critical path. As such,
instead of doing the state restore writes in softirq context,
use a workqueue and just do regular synchronous writes.

In addition to the cleanup, this also imposes less on the
overall system as tasklets have been deprecated because
of it's softirq implications, potentially blocking a higher
priority task from running.

Signed-off-by: Davidlohr Bueso <dbueso@suse.de>
Link: https://lore.kernel.org/r/20201120045300.28804-1-dave@stgolabs.net
[johan: amend commit message ("softirq context")]
Signed-off-by: Johan Hovold <johan@kernel.org>
drivers/usb/serial/mos7720.c