Messages in this thread | | | Date | Tue, 12 Feb 2013 09:38:12 -0800 | From | Tejun Heo <> | Subject | Re: [PATCH 2/2] stop_machine: dequeue work before signal completion |
| |
On Sun, Feb 10, 2013 at 01:26:11PM +0800, Hillf Danton wrote: > When a CPU is finally put down in either CPU_UP_CANCELLED or > CPU_POST_DEAD, cpu_stop_cpu_callback() signals immediate completion on > all cpu_stop_works still queued on the dead CPU; unfortunately, this > code is buggy in that it doesn't remove the canceled work items off > the stopper->works leaving it corrupted, which will trigger BUG_ON() > during CPU_UP_PREPARE if the CPU is brought back online. > > This bug isn't easily triggered because CPU_DOWN has to race against > cpu_stop calls and most, if not all, cpu stop users pin target CPUs. > > Fix it by popping each work item off stopper->works. > > Thanks Tejun for sharing commit message, again. > > Signed-off-by: Hillf Danton <dhillf@gmail.com> > Reviewed-by: Namhyung Kim <namhyung@kernel.org> > Cc: stable@vger.kernel.org
Acked-by: Tejun Heo <tj@kernel.org>
Andrew, this one too.
Thank you!
-- tejun
| |