summaryrefslogtreecommitdiffstats
path: root/drivers/staging/fwserial/fwserial.h
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2014-03-07 10:24:50 -0500
committerTejun Heo <tj@kernel.org>2014-03-07 10:24:50 -0500
commit6c256cb6467e60b54f41170076c7f625e231c282 (patch)
tree8796d0ac5ae7774ba08a203e3647e7242a0e062e /drivers/staging/fwserial/fwserial.h
parent059499453a9abd1857d442b44da8b4c126dc72a8 (diff)
downloadtalos-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.h1
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;
OpenPOWER on IntegriCloud