diff --git a/kernel/workqueue.c b/kernel/workqueue.c
index c7e36d4a70cabdb9711640575e68ac86d68a7da1..a3de837a8dddf7fc0f10daf53b5d1d5fe90928e8 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -499,7 +499,7 @@ static int __devinit workqueue_cpu_callback(struct notifier_block *nfb,
 	case CPU_UP_PREPARE:
 		/* Create a new workqueue thread for it. */
 		list_for_each_entry(wq, &workqueues, list) {
-			if (create_workqueue_thread(wq, hotcpu) < 0) {
+			if (!create_workqueue_thread(wq, hotcpu)) {
 				printk("workqueue for %i failed\n", hotcpu);
 				return NOTIFY_BAD;
 			}