mm/mempolicy: fix incorrect freeing of wi_kobj
authorJoshua Hahn <joshua.hahnjy@gmail.com>
Mon, 2 Jun 2025 16:23:39 +0000 (09:23 -0700)
committerAndrew Morton <akpm@linux-foundation.org>
Fri, 6 Jun 2025 05:02:23 +0000 (22:02 -0700)
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.

Link: https://lkml.kernel.org/r/20250602162345.2595696-1-joshua.hahnjy@gmail.com
Fixes: e341f9c3c841 ("mm/mempolicy: Weighted Interleave Auto-tuning")
Signed-off-by: Joshua Hahn <joshua.hahnjy@gmail.com>
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202506011545.Fduxqxqj-lkp@intel.com/
Cc: Alistair Popple <apopple@nvidia.com>
Cc: Byungchul Park <byungchul@sk.com>
Cc: David Hildenbrand <david@redhat.com>
Cc: Gregory Price <gourry@gourry.net>
Cc: "Huang, Ying" <ying.huang@linux.alibaba.com>
Cc: Mathew Brost <matthew.brost@intel.com>
Cc: Rakie Kim <rakie.kim@sk.com>
Cc: Zi Yan <ziy@nvidia.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/mempolicy.c

index 72fd72e156b1a5dc8706126115c7f137358b6d01..3b1dfd08338bd322c6d71fff8dd0715d3a0006ba 100644 (file)
@@ -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 =