Messages in this thread Patch in this message | | | Date | Tue, 15 Jul 2008 17:12:10 +0900 | From | Akinobu Mita <> | Subject | [PATCH] workqueue: proper error unwinding in cpu hotplug error path |
| |
Add proper error unwinding in error path in CPU_UP_PREPARE notifier.
Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com> --- kernel/workqueue.c | 9 +++++++++ 1 file changed, 9 insertions(+)
Index: 2.6-mmotm/kernel/workqueue.c =================================================================== --- 2.6-mmotm.orig/kernel/workqueue.c +++ 2.6-mmotm/kernel/workqueue.c @@ -928,6 +928,15 @@ static int __devinit workqueue_cpu_callb break; printk(KERN_ERR "workqueue [%s] for %i failed\n", wq->name, cpu); + + list_for_each_entry_continue_reverse(wq, &workqueues, + list) { + cwq = per_cpu_ptr(wq->cpu_wq, cpu); + start_workqueue_thread(cwq, -1); + cleanup_workqueue_thread(cwq); + } + cpu_clear(cpu, cpu_populated_map); + return NOTIFY_BAD; case CPU_ONLINE:
| |