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()")
Showing the changes to kernel/workqueue.c (1 of 1 file). Show all
Unified · Split
| @@ -3491,7 +3491,6 @@ static void rcu_free_wq(struct rcu_head *rcu) · 3490 unmodified lines | ||
| 3491 | 3491 | else |
| 3492 | 3492 | free_workqueue_attrs(wq->unbound_attrs); |
| 3493 | 3493 | |
| 3494 | − kfree(wq->rescuer); | |
| 3495 | 3494 | kfree(wq); |
| 3496 | 3495 | } |
| 3497 | 3496 | |