Re: [PATCH 1/2] mm/mempolicy: Fix incorrect freeing of wi_kobj
From: Joshua Hahn
Date: Mon Jun 02 2025 - 12:53:44 EST
On Mon, 2 Jun 2025 09:23:39 -0700 Joshua Hahn <joshua.hahnjy@xxxxxxxxx> wrote:
> We should not free wi_group->wi_kobj here. In the error path of
> add_weighted_interleave_group() where this snippet is called from,
> kobj_{del, put} is immediately called right after this section. Thus,
> it is not only unnecessary but also incorrect to free it here.
>
Fixes: e341f9c3c841 ("mm/mempolicy: Weighted Interleave Auto-tuning")
> Signed-off-by: Joshua Hahn <joshua.hahnjy@xxxxxxxxx>
> Reported-by: kernel test robot <lkp@xxxxxxxxx>
> Closes: https://lore.kernel.org/oe-kbuild-all/202506011545.Fduxqxqj-lkp@xxxxxxxxx/
> ---
> mm/mempolicy.c | 4 +---
> 1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/mm/mempolicy.c b/mm/mempolicy.c
> index 72fd72e156b1..3b1dfd08338b 100644
> --- a/mm/mempolicy.c
> +++ b/mm/mempolicy.c
> @@ -3708,15 +3708,13 @@ static void wi_state_free(void)
> lockdep_is_held(&wi_state_lock));
> if (!old_wi_state) {
> mutex_unlock(&wi_state_lock);
> - goto out;
> + return;
> }
>
> rcu_assign_pointer(wi_state, NULL);
> mutex_unlock(&wi_state_lock);
> synchronize_rcu();
> kfree(old_wi_state);
> -out:
> - kfree(&wi_group->wi_kobj);
> }
>
> static struct kobj_attribute wi_auto_attr =
> --
> 2.47.1