--- x/kernel/workqueue.c +++ y/kernel/workqueue.c @@ -2384,6 +2384,10 @@ retry: work_flags |= WORK_STRUCT_INACTIVE; insert_work(pwq, work, &pwq->inactive_works, work_flags); } + do { + unsigned long data = *work_data_bits(work); + BUG_ON(data & WORK_OFFQ_DISABLE_MASK); + } while (0); out: raw_spin_unlock(&pool->lock);