diff --git a/kernel/workqueue.c b/kernel/workqueue.c index 0280deac392e25c833cda56a0d193507998b6de4..cd8b61bded78408aaf54b6e4e23e199ec84565c0 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -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);