Messages in this thread | | | Date | Tue, 4 Dec 2012 07:39:39 -0800 | From | Tejun Heo <> | Subject | Re: [PATCH] megaraid: fix use of delayed work |
| |
On Tue, Dec 04, 2012 at 07:33:54PM +0800, Xiaotian Feng wrote: > 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, schedule_delayed_work() will check dwork->timer before > queue_work, this will cause 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> > Cc: 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
Urgh... what the.... Didn't see that one coming. I'm gonna push this to Linus through the workqueue tree.
Thanks for the fix.
-- tejun
| |