summaryrefslogtreecommitdiffstats
path: root/include/linux/workqueue.h
diff options
context:
space:
mode:
authorRichard Clark <richard.xnu.clark@gmail.com>2022-12-13 12:39:36 +0800
committerTejun Heo <tj@kernel.org>2023-01-04 12:25:29 -1000
commit33e3f0a3358b8f9bb54b2661b9c1d37a75664c79 (patch)
treea8e81fcbbdf813c1322c8c8b7156ac9e52650da5 /include/linux/workqueue.h
parent512dee0c00ad9e9c7ae9f11fc6743702ea40caff (diff)
downloadlinux-33e3f0a3358b8f9bb54b2661b9c1d37a75664c79.tar.gz
linux-33e3f0a3358b8f9bb54b2661b9c1d37a75664c79.tar.bz2
linux-33e3f0a3358b8f9bb54b2661b9c1d37a75664c79.zip
workqueue: Add a new flag to spot the potential UAF error
Currently if the user queues a new work item unintentionally into a wq after the destroy_workqueue(wq), the work still can be queued and scheduled without any noticeable kernel message before the end of a RCU grace period. As a debug-aid facility, this commit adds a new flag __WQ_DESTROYING to spot that issue by triggering a kernel WARN message. Signed-off-by: Richard Clark <richard.xnu.clark@gmail.com> Reviewed-by: Lai Jiangshan <jiangshanlai@gmail.com> Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'include/linux/workqueue.h')
-rw-r--r--include/linux/workqueue.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/workqueue.h b/include/linux/workqueue.h
index a0143dd24430..ac551b8ee7d9 100644
--- a/include/linux/workqueue.h
+++ b/include/linux/workqueue.h
@@ -335,6 +335,7 @@ enum {
*/
WQ_POWER_EFFICIENT = 1 << 7,
+ __WQ_DESTROYING = 1 << 15, /* internal: workqueue is destroying */
__WQ_DRAINING = 1 << 16, /* internal: workqueue is draining */
__WQ_ORDERED = 1 << 17, /* internal: workqueue is ordered */
__WQ_LEGACY = 1 << 18, /* internal: create*_workqueue() */