Skip to content

Commit e41898d

Browse files
committed
Merge tag 'fixes-2022-02-26' of git://git.kernel.org/pub/scm/linux/kernel/git/rppt/memblock
Pull memblock fix from Mike Rapoport: "Use kfree() to release kmalloced memblock regions memblock.{reserved,memory}.regions may be allocated using kmalloc() in memblock_double_array(). Use kfree() to release these kmalloced regions" * tag 'fixes-2022-02-26' of git://git.kernel.org/pub/scm/linux/kernel/git/rppt/memblock: memblock: use kfree() to release kmalloced memblock regions
2 parents 086ee11 + c94afc4 commit e41898d

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

mm/memblock.c

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -366,14 +366,20 @@ void __init memblock_discard(void)
366366
addr = __pa(memblock.reserved.regions);
367367
size = PAGE_ALIGN(sizeof(struct memblock_region) *
368368
memblock.reserved.max);
369-
memblock_free_late(addr, size);
369+
if (memblock_reserved_in_slab)
370+
kfree(memblock.reserved.regions);
371+
else
372+
memblock_free_late(addr, size);
370373
}
371374

372375
if (memblock.memory.regions != memblock_memory_init_regions) {
373376
addr = __pa(memblock.memory.regions);
374377
size = PAGE_ALIGN(sizeof(struct memblock_region) *
375378
memblock.memory.max);
376-
memblock_free_late(addr, size);
379+
if (memblock_memory_in_slab)
380+
kfree(memblock.memory.regions);
381+
else
382+
memblock_free_late(addr, size);
377383
}
378384

379385
memblock_memory = NULL;

0 commit comments

Comments
 (0)