[PATCH] Revert "workqueue: remove unused cancel_work()"

Andrey Grodzovsky andrey.grodzovsky at amd.com
Thu May 19 15:04:38 UTC 2022


See this patch-set https://www.spinics.net/lists/amd-gfx/msg78514.html, 
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.

Andrey

On 2022-05-19 10:52, Lai Jiangshan wrote:
> On Thu, May 19, 2022 at 9:57 PM Andrey Grodzovsky
> <andrey.grodzovsky at amd.com>  wrote:
>> This reverts commit 6417250d3f894e66a68ba1cd93676143f2376a6f
>> and exports the function.
>>
>> We need this funtion in amdgpu driver to fix a bug.
> Hello,
>
> Could you specify the reason why it is needed in amdgpu driver
> rather than "fix a bug", please.
>
> And there is a typo: "funtion".
>
> And please avoid using "we" in the changelog.  For example, the
> sentence can be changed to:
>
> The amdgpu driver needs this function to cancel a work item
> in blabla context/situation or for blabla reason.
> (I'm not good at Engish, this is just an example of not
> using "we".  No need to use the sentence.)
>
> Thanks
> Lai
>
>> Signed-off-by: Andrey Grodzovsky<andrey.grodzovsky at 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
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/amd-gfx/attachments/20220519/da8613d3/attachment.htm>


More information about the amd-gfx mailing list