summaryrefslogtreecommitdiffstats
path: root/kernel/workqueue.c
diff options
context:
space:
mode:
authorXiaotian Feng <xtfeng@gmail.com>2012-12-04 12:33:54 +0100
committerTejun Heo <tj@kernel.org>2012-12-04 16:29:47 +0100
commitc1d390d8e6128b050f0f66b1c33d390760deb3f4 (patch)
treeedbdf78f783da84eeacb7041a8b64d3096ce1f81 /kernel/workqueue.c
parentworkqueue: mod_delayed_work_on() shouldn't queue timer on 0 delay (diff)
downloadlinux-c1d390d8e6128b050f0f66b1c33d390760deb3f4.tar.xz
linux-c1d390d8e6128b050f0f66b1c33d390760deb3f4.zip
megaraid: fix BUG_ON() from incorrect use of delayed work
megaraid use INIT_WORK to declare a hotplug_work, but cast the hotplug_work from work_struct to delayed_work and schedule_delayed_work on it. This is very dangerous, as other part of delayed_work might be kernel memories allocated by others. With commit 8852aac ("workqueue: mod_delayed_work_on() shouldn't queue timer on 0 delay"), schedule_delayed_work() will check dwork->timer before queue_work even when @delay is 0, this causes megaraid code to hit the BUG_ON() in workqueue code. Change megaraid code to use delayed work. Signed-off-by: Xiaotian Feng <dannyfeng@tencent.com> Signed-off-by: Tejun Heo <tj@kernel.org> Cc: Neela Syam Kolli <megaraidlinux@lsi.com> Cc: "James E.J. Bottomley" <JBottomley@parallels.com> Cc: linux-scsi@vger.kernel.org
Diffstat (limited to '')
0 files changed, 0 insertions, 0 deletions