]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - kernel/workqueue_internal.h
workqueue: implement current_is_async()
[karo-tx-linux.git] / kernel / workqueue_internal.h
index 02549fa04587c39d77300fe3018316a5dee39ee8..cc35e7e62091ec1335d1e8b14f5e56a5703c44fe 100644 (file)
@@ -8,6 +8,7 @@
 #define _KERNEL_WORKQUEUE_INTERNAL_H
 
 #include <linux/workqueue.h>
+#include <linux/kthread.h>
 
 struct global_cwq;
 struct worker_pool;
@@ -44,6 +45,16 @@ struct worker {
        struct workqueue_struct *rescue_wq;     /* I: the workqueue to rescue */
 };
 
+/**
+ * current_wq_worker - return struct worker if %current is a workqueue worker
+ */
+static inline struct worker *current_wq_worker(void)
+{
+       if (current->flags & PF_WQ_WORKER)
+               return kthread_data(current);
+       return NULL;
+}
+
 /*
  * Scheduler hooks for concurrency managed workqueue.  Only to be used from
  * sched.c and workqueue.c.