diff options
author | Tejun Heo <tj@kernel.org> | 2014-03-07 10:24:50 -0500 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2014-03-07 10:24:50 -0500 |
commit | 6c256cb6467e60b54f41170076c7f625e231c282 (patch) | |
tree | 8796d0ac5ae7774ba08a203e3647e7242a0e062e /drivers/staging/fwserial/fwserial.h | |
parent | 059499453a9abd1857d442b44da8b4c126dc72a8 (diff) | |
download | talos-obmc-linux-6c256cb6467e60b54f41170076c7f625e231c282.tar.gz talos-obmc-linux-6c256cb6467e60b54f41170076c7f625e231c282.zip |
staging/fwserial: don't use PREPARE_WORK
PREPARE_[DELAYED_]WORK() are being phased out. They have few users
and a nasty surprise in terms of reentrancy guarantee as workqueue
considers work items to be different if they don't have the same work
function.
fwtty_peer->work is multiplexed with multiple work functions.
Introduce fwserial_peer_workfn() which invokes fwtty_peer->workfn and
always use it as the work function and update the users to set the
->workfn field instead of overriding the work function using
PREPARE_WORK().
It would probably be best to route this with other related updates
through the workqueue tree.
Compile tested.
Signed-off-by: Tejun Heo <tj@kernel.org>
Acked-by: Peter Hurley <peter@hurleysoftware.com>
Diffstat (limited to 'drivers/staging/fwserial/fwserial.h')
-rw-r--r-- | drivers/staging/fwserial/fwserial.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/staging/fwserial/fwserial.h b/drivers/staging/fwserial/fwserial.h index 54f7f9b9b212..98b853d4acbc 100644 --- a/drivers/staging/fwserial/fwserial.h +++ b/drivers/staging/fwserial/fwserial.h @@ -91,6 +91,7 @@ struct fwtty_peer { struct rcu_head rcu; spinlock_t lock; + work_func_t workfn; struct work_struct work; struct peer_work_params work_params; struct timer_list timer; |