path: root/include
diff options
authorLinus Torvalds <torvalds@linux-foundation.org>2014-03-08 11:51:13 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2014-03-08 11:51:13 -0800
commit9f93585fdfd34a6fcbad16c0f1e031492df63ad1 (patch)
tree6050c4d21c53ea1f88d79f68e060a075a5a343a6 /include
parent85ec688c161a497c3becb6a056cd856552240227 (diff)
parent70044d71d31d6973665ced5be04ef39ac1c09a48 (diff)
Merge branch 'for-3.14-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq
Pull workqueue fix from Tejun Heo: "This pull request contains a workqueue usage fix for firewire. For quite a long time now, workqueue only treats two work items identical iff both their addresses and callbacks match. This is to avoid introducing false dependency through the work item being recycled while being executed. This changes non-reentrancy guarantee for the users of PREPARE[_DELAYED]_WORK() - if the function changes, reentrancy isn't guaranteed against the previous instance. Firewire depended on such nonreentrancy guarantee. This is fixed by doing the work item multiplexing from firewire proper while keeping the work function unchanged" * 'for-3.14-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq: firewire: don't use PREPARE_DELAYED_WORK
Diffstat (limited to 'include')
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/firewire.h b/include/linux/firewire.h
index 5d7782e42b8f..c3683bdf28fe 100644
--- a/include/linux/firewire.h
+++ b/include/linux/firewire.h
@@ -200,6 +200,7 @@ struct fw_device {
unsigned irmc:1;
unsigned bc_implemented:2;
+ work_func_t workfn;
struct delayed_work work;
struct fw_attribute_group attribute_group;