lkml.org 
[lkml]   [2022]   [May]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
SubjectRe: [PATCH] Revert "workqueue: remove unused cancel_work()"
From


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&amp;data=05%7C01%7Candrey.grodzovsky%40amd.com%7Cb25896b7e8b14e605a8d08da3a35a7c7%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637886299388464620%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=TRabWQQrhy6nwkLfuXI4A%2FOcF9f%2FtFKdxIRfGc8Das4%3D&amp;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
\
 
 \ /
  Last update: 2022-05-21 06:05    [W:0.223 / U:23.716 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site