workqueue: Try to catch flush_work() without INIT_WORK().
[linux-2.6-microblaze.git] / kernel / workqueue.c
index 392be4b..a503ad9 100644 (file)
@@ -2908,6 +2908,9 @@ static bool __flush_work(struct work_struct *work, bool from_cancel)
        if (WARN_ON(!wq_online))
                return false;
 
+       if (WARN_ON(!work->func))
+               return false;
+
        if (!from_cancel) {
                lock_map_acquire(&work->lockdep_map);
                lock_map_release(&work->lockdep_map);