diff options
author | Dave Airlie <airlied@redhat.com> | 2024-11-04 14:25:33 +1000 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2024-11-04 14:25:33 +1000 |
commit | 30169bb64580bd7bce9290c1952bf0aa6cc37fe5 (patch) | |
tree | 94c6ab9dec68f5648a055752aad32d816bd27e11 /mm/shrinker.c | |
parent | bcfe43f0ea77c42c2154fb79b99b7d1d82ac3231 (diff) | |
parent | 59b723cd2adbac2a34fc8e12c74ae26ae45bf230 (diff) |
Backmerge v6.12-rc6 of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux into drm-next
Backmerge Linus tree for some drm-fixes needed for msm and xe merges.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'mm/shrinker.c')
-rw-r--r-- | mm/shrinker.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/mm/shrinker.c b/mm/shrinker.c index dc5d2a6fcfc4..4a93fd433689 100644 --- a/mm/shrinker.c +++ b/mm/shrinker.c @@ -76,19 +76,21 @@ void free_shrinker_info(struct mem_cgroup *memcg) int alloc_shrinker_info(struct mem_cgroup *memcg) { - struct shrinker_info *info; int nid, ret = 0; int array_size = 0; mutex_lock(&shrinker_mutex); array_size = shrinker_unit_size(shrinker_nr_max); for_each_node(nid) { - info = kvzalloc_node(sizeof(*info) + array_size, GFP_KERNEL, nid); + struct shrinker_info *info = kvzalloc_node(sizeof(*info) + array_size, + GFP_KERNEL, nid); if (!info) goto err; info->map_nr_max = shrinker_nr_max; - if (shrinker_unit_alloc(info, NULL, nid)) + if (shrinker_unit_alloc(info, NULL, nid)) { + kvfree(info); goto err; + } rcu_assign_pointer(memcg->nodeinfo[nid]->shrinker_info, info); } mutex_unlock(&shrinker_mutex); |