mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-20 05:31:15 +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
|
@ -57,6 +57,8 @@ asynchronous and synchronous parts of the kernel.
|
|||
#include <linux/slab.h>
|
||||
#include <linux/workqueue.h>
|
||||
|
||||
#include "workqueue_internal.h"
|
||||
|
||||
static async_cookie_t next_cookie = 1;
|
||||
|
||||
#define MAX_WORK 32768
|
||||
|
@ -337,3 +339,15 @@ void async_synchronize_cookie(async_cookie_t cookie)
|
|||
async_synchronize_cookie_domain(cookie, &async_running);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(async_synchronize_cookie);
|
||||
|
||||
/**
|
||||
* current_is_async - is %current an async worker task?
|
||||
*
|
||||
* Returns %true if %current is an async worker task.
|
||||
*/
|
||||
bool current_is_async(void)
|
||||
{
|
||||
struct worker *worker = current_wq_worker();
|
||||
|
||||
return worker && worker->current_func == async_run_entry_fn;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue