Re: [v2] workqueue: Fix double kfree for rescuer

2020-05-25 Thread qzhang2
Thanks for your advice. The rescuer null pointer is intentionally passed by a data structure? and also I read the code of workqueue again, when destroy_workqueue is called, after "wq->rescuer = NULL" was executed, The scenario described below does not happen "if non-null pointers (according to

Re: [v2] workqueue: Fix double kfree for rescuer

2020-05-25 Thread Markus Elfring
> I see, kfree does nothing with null pointers and direct return. > but again kfree is not a good suggestion. I have got the impression that the implementation detail is important here if non-null pointers (according to valid rescuer objects) are occasionally passed by the corresponding data struc

Re: [PATCH v2] workqueue: Fix double kfree for rescuer

2020-05-25 Thread qzhang2
I see, kfree does nothing with null pointers and direct return. but again kfree is not a good suggestion. On 5/25/20 5:50 PM, Markus Elfring wrote: The duplicate memory release should be deleted from the implementation of the callback function "rcu_free_wq". I tried to help with the selection

Re: [PATCH v2] workqueue: Fix double kfree for rescuer

2020-05-25 Thread Markus Elfring
> * The function call “destroy_workqueue” can be performed there in an if branch > after the statement “wq->rescuer = NULL” was executed. Another correction: * The function call “kfree(rescuer)” can be performed there in an if branch after the statement “wq->rescuer = NULL” was executed. Rega

Re: [PATCH v2] workqueue: Fix double kfree for rescuer

2020-05-25 Thread Markus Elfring
> The duplicate memory release should be deleted from the implementation > of the callback function "rcu_free_wq". I tried to help with the selection of a better commit message. I have taken another look also at the implementation of the function “destroy_workqueue”. * The function call “destroy