summaryrefslogtreecommitdiffstats
path: root/include/linux/workqueue.h
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2014-03-07 10:19:57 -0500
committerTejun Heo <tj@kernel.org>2014-03-07 10:19:57 -0500
commit70044d71d31d6973665ced5be04ef39ac1c09a48 (patch)
treef74d931f9df397f6ffcb257158215780bed6ab87 /include/linux/workqueue.h
parent5bdfff96c69a4d5ab9c49e60abf9e070ecd2acbb (diff)
downloadlinux-stable-70044d71d31d6973665ced5be04ef39ac1c09a48.tar.gz
linux-stable-70044d71d31d6973665ced5be04ef39ac1c09a48.tar.bz2
linux-stable-70044d71d31d6973665ced5be04ef39ac1c09a48.zip
firewire: don't use PREPARE_DELAYED_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. firewire core-device and sbp2 have been been multiplexing work items with multiple work functions. Introduce fw_device_workfn() and sbp2_lu_workfn() which invoke fw_device->workfn and sbp2_logical_unit->workfn respectively and always use the two functions as the work functions and update the users to set the ->workfn fields instead of overriding work functions using PREPARE_DELAYED_WORK(). This fixes a variety of possible regressions since a2c1c57be8d9 "workqueue: consider work function when searching for busy work items" due to which fw_workqueue lost its required non-reentrancy property. Signed-off-by: Tejun Heo <tj@kernel.org> Acked-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Cc: linux1394-devel@lists.sourceforge.net Cc: stable@vger.kernel.org # v3.9+ Cc: stable@vger.kernel.org # v3.8.2+ Cc: stable@vger.kernel.org # v3.4.60+ Cc: stable@vger.kernel.org # v3.2.40+
Diffstat (limited to 'include/linux/workqueue.h')
0 files changed, 0 insertions, 0 deletions