Messages in this thread Patch in this message | | | Date | Sat, 21 May 2022 00:04:00 -0400 | Subject | Re: [PATCH] Revert "workqueue: remove unused cancel_work()" | From | Andrey Grodzovsky <> |
| |
On 2022-05-20 03:52, Tejun Heo wrote: > On Fri, May 20, 2022 at 08:22:39AM +0200, Christian König wrote: >> Am 20.05.22 um 02:47 schrieb Lai Jiangshan: >>> On Thu, May 19, 2022 at 11:04 PM Andrey Grodzovsky >>> <andrey.grodzovsky@amd.com> wrote: >>>> See this patch-set https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.spinics.net%2Flists%2Famd-gfx%2Fmsg78514.html&data=05%7C01%7Candrey.grodzovsky%40amd.com%7Cb25896b7e8b14e605a8d08da3a35a7c7%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637886299388464620%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=TRabWQQrhy6nwkLfuXI4A%2FOcF9f%2FtFKdxIRfGc8Das4%3D&reserved=0, specifically patch >>>> 'drm/amdgpu: Switch to delayed work from work_struct. >>>> >>>> I will just reiterate here - >>>> >>>> We need to be able to do non blocking cancel pending reset works >>>> from within GPU reset. Currently kernel API allows this only >>>> for delayed_work and not for work_struct. >>>> >>> I'm OK with the change. >>> >>> With an updated changelog: >>> >>> Reviewed-by: Lai Jiangshan<jiangshanlai@gmail.com> >> >> Good morning guys, >> >> for the patch itself Reviewed-by: Christian König <christian.koenig@amd.com> >> >> And just for the record: We plan to push this upstream through the drm >> branches, if anybody has any objections to that please speak up. > > Andrey, care to resend with updated description? > > Thanks >
Just adding here as attachment since only description changed changed.
AndreyFrom 78df30cc97f10c885f5159a293e6afe2348aa60c Mon Sep 17 00:00:00 2001 From: Andrey Grodzovsky <andrey.grodzovsky@amd.com> Date: Thu, 19 May 2022 09:47:28 -0400 Subject: Revert "workqueue: remove unused cancel_work()"
This reverts commit 6417250d3f894e66a68ba1cd93676143f2376a6f.
amdpgu need this function in order to prematurly stop pending reset works when another reset work already in progress.
Signed-off-by: Andrey Grodzovsky <andrey.grodzovsky@amd.com> --- 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 7fee9b6cfede..9e41e1226193 100644 --- a/include/linux/workqueue.h +++ b/include/linux/workqueue.h @@ -453,6 +453,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 613917bbc4e7..f94b596ebffd 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -3267,6 +3267,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 -- 2.25.1
| |