5.10-stable review patch. If anyone has any objections, please let me know.
------------------
From: Andrey Grodzovsky andrey.grodzovsky@amd.com
[ Upstream commit 73b4b53276a1d6290cd4f47dbbc885b6e6e59ac6 ]
This reverts commit 6417250d3f894e66a68ba1cd93676143f2376a6f.
amdpgu need this function in order to prematurly stop pending reset works when another reset work already in progress.
Acked-by: Tejun Heo tj@kernel.org Signed-off-by: Andrey Grodzovsky andrey.grodzovsky@amd.com Reviewed-by: Lai Jiangshanjiangshanlai@gmail.com Reviewed-by: Christian König christian.koenig@amd.com Signed-off-by: Alex Deucher alexander.deucher@amd.com Stable-dep-of: 91d3d149978b ("r8169: prevent potential deadlock in rtl8169_close") Signed-off-by: Sasha Levin sashal@kernel.org --- include/linux/workqueue.h | 1 + kernel/workqueue.c | 9 +++++++++ 2 files changed, 10 insertions(+)
diff --git a/include/linux/workqueue.h b/include/linux/workqueue.h index 460c58fa011ae..0383fac637e19 100644 --- a/include/linux/workqueue.h +++ b/include/linux/workqueue.h @@ -460,6 +460,7 @@ extern int schedule_on_each_cpu(work_func_t func); int execute_in_process_context(work_func_t fn, struct execute_work *);
extern bool flush_work(struct work_struct *work); +extern bool cancel_work(struct work_struct *work); extern bool cancel_work_sync(struct work_struct *work);
extern bool flush_delayed_work(struct delayed_work *dwork); diff --git a/kernel/workqueue.c b/kernel/workqueue.c index 37d01e44d4837..63140e4dd5dfc 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -3240,6 +3240,15 @@ static bool __cancel_work(struct work_struct *work, bool is_dwork) return ret; }
+/* + * See cancel_delayed_work() + */ +bool cancel_work(struct work_struct *work) +{ + return __cancel_work(work, false); +} +EXPORT_SYMBOL(cancel_work); + /** * cancel_delayed_work - cancel a delayed work * @dwork: delayed_work to cancel