mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-19 05:04:20 +00:00
workqueue: implement current_is_async()
This function queries whether %current is an async worker executing an async item. This will be used to implement warning on synchronous request_module() from async workers. Signed-off-by: Tejun Heo <tj@kernel.org>
This commit is contained in:
parent
2eaebdb33e
commit
84b233adcc
3 changed files with 26 additions and 0 deletions
|
@ -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.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue