[PATCH] workqueue: proper error unwinding in cpu hotplug error path

From: Akinobu Mita
Date: Tue Jul 15 2008 - 04:12:36 EST


Add proper error unwinding in error path in CPU_UP_PREPARE notifier.

Signed-off-by: Akinobu Mita <akinobu.mita@xxxxxxxxx>
---
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:
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/