staging/fwserial: don't use PREPARE_WORK
authorTejun Heo <tj@kernel.org>
Fri, 7 Mar 2014 15:24:50 +0000 (10:24 -0500)
committerTejun Heo <tj@kernel.org>
Fri, 7 Mar 2014 15:24:50 +0000 (10:24 -0500)
commit6c256cb6467e60b54f41170076c7f625e231c282
tree8796d0ac5ae7774ba08a203e3647e7242a0e062e
parent059499453a9abd1857d442b44da8b4c126dc72a8
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>
drivers/staging/fwserial/fwserial.c
drivers/staging/fwserial/fwserial.h