Re: [PATCH v4] workqueue: Remove unnecessary kfree() call in rcu_free_wq()

From: Markus Elfring
Date: Wed May 27 2020 - 02:40:26 EST


> The callback function "rcu_free_wq" could be called after memory
> was released for "wq->rescuer" already and assignment is empty. so
> remove unnecessary kfree(NULL).

I have got the impression that also this wording approach contains weaknesses.
How do you think about a wording variant like the following?

The data structure member âwq->rescuerâ was reset to a null pointer
in one if branch. It was passed to a call of the function âkfreeâ
in the callback function ârcu_free_wqâ (which was eventually executed).
The function âkfreeâ does not perform more meaningful data processing
for a passed null pointer (besides immediately returning from such a call).
Thus delete this function call which became unnecessary with the referenced
software update.


> Fixes: def98c84b6cd ("workqueue: Fix spurious sanity check failures in destroy_workqueue()")

This change triggered another collateral evolution finally.
Would you like to detect similarly questionable function calls
by advanced source code analysis?


> Fixes: 8efe1223d73c ("workqueue: Fix missing kfree(rescuer) in destroy_workqueue()")

Please delete this tag from the change description
(because I find that it is not so relevant here.)


> v1->v2->v3->v4:
> Modify wrong submission information.

Will it be nicer to mention the adjustment of the commit message?

Regards,
Markus