]> git.baikalelectronics.ru Git - kernel.git/commit
staging: unisys: visorbus: use kernel timer instead of workqueue
authorTim Sell <Timothy.Sell@unisys.com>
Sat, 11 Jun 2016 01:48:08 +0000 (21:48 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 15 Aug 2016 18:44:24 +0000 (20:44 +0200)
commitb7567a8f5112d05c42048723597618f6c9bed7b9
tree98987dcb9aba3bdb27ab20e053fee6749f0dea96
parentfb17491e83769ec11662ef02116488e35b7c0335
staging: unisys: visorbus: use kernel timer instead of workqueue

A kernel timer is now used as the vehicle to periodically call the
channel_interrupt function of registered visor drivers, instead of a
workqueue.

This simplifies a lot of things by making periodic_work.c and
periodic_work.h no longer necessary.  This change also means that the
channel_interrupt() callbacks registered by visor drivers (via
visorbus_register_visor_driver()) will now be called in atomic context
(i.e., canNOT sleep) rather than kernel thread context (CAN sleep).
Fortunately this did NOT necessitate any change to the existing
channel_interrupt() callbacks, because none of them ever perform any
operations that would be invalid in atomic context.

Signed-off-by: Tim Sell <Timothy.Sell@unisys.com>
Signed-off-by: David Kershner <david.kershner@unisys.com>
Acked-By: Neil Horman <nhorman@tuxdriver.com>
Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/unisys/include/visorbus.h
drivers/staging/unisys/visorbus/visorbus_main.c