diff --git a/kernel/workqueue_internal.h b/kernel/workqueue_internal.h index efdd72e15794eb2fca6afbbe28612d1fdd3288d6..d390d1be37489f37bd8ac42826a12782a4ca99dc 100644 --- a/kernel/workqueue_internal.h +++ b/kernel/workqueue_internal.h @@ -10,6 +10,7 @@ #include #include +#include struct worker_pool; @@ -60,7 +61,7 @@ struct worker { */ static inline struct worker *current_wq_worker(void) { - if (current->flags & PF_WQ_WORKER) + if (in_task() && (current->flags & PF_WQ_WORKER)) return kthread_data(current); return NULL; }