workqueue: Add a new flag to spot the potential UAF error
authorRichard Clark <richard.xnu.clark@gmail.com>
Tue, 13 Dec 2022 04:39:36 +0000 (12:39 +0800)
committerTejun Heo <tj@kernel.org>
Wed, 4 Jan 2023 22:25:29 +0000 (12:25 -1000)
commit33e3f0a3358b8f9bb54b2661b9c1d37a75664c79
treea8e81fcbbdf813c1322c8c8b7156ac9e52650da5
parent512dee0c00ad9e9c7ae9f11fc6743702ea40caff
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>
include/linux/workqueue.h
kernel/workqueue.c