mirror of
https://github.com/linux-msm/laptops-kernel.git
synced 2026-08-13 14:19:53 -07:00
Merge tag 'fixes-2026-05-30' of git://git.kernel.org/pub/scm/linux/kernel/git/rppt/memblock
Pull memblock fix from Mike Rapoport: "Fix regression from memblock_free_late() refactoring After refactoring of memblock_free_late() and free_init_pages() it became possible to call memblock_free() after memblock init data was discarded. Make sure memblock_free() does not touch memblock.reserved unless it is called early enough or when ARCH_KEEP_MEMBLOCK is enabled" * tag 'fixes-2026-05-30' of git://git.kernel.org/pub/scm/linux/kernel/git/rppt/memblock: memblock: don't touch memblock arrays when memblock_free() is called late
This commit is contained in:
+4
-2
@@ -989,13 +989,15 @@ void __init_memblock memblock_free(void *ptr, size_t size)
|
||||
int __init_memblock memblock_phys_free(phys_addr_t base, phys_addr_t size)
|
||||
{
|
||||
phys_addr_t end = base + size - 1;
|
||||
int ret;
|
||||
int ret = 0;
|
||||
|
||||
memblock_dbg("%s: [%pa-%pa] %pS\n", __func__,
|
||||
&base, &end, (void *)_RET_IP_);
|
||||
|
||||
kmemleak_free_part_phys(base, size);
|
||||
ret = memblock_remove_range(&memblock.reserved, base, size);
|
||||
|
||||
if (!slab_is_available() || IS_ENABLED(CONFIG_ARCH_KEEP_MEMBLOCK))
|
||||
ret = memblock_remove_range(&memblock.reserved, base, size);
|
||||
|
||||
if (slab_is_available())
|
||||
__free_reserved_area(base, base + size, -1);
|
||||
|
||||
Reference in New Issue
Block a user