From: Greg Kroah-Hartman Date: Mon, 28 Feb 2022 11:13:33 +0000 (+0100) Subject: 5.15-stable patches X-Git-Tag: v4.9.304~3 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=768b63299f23eb935b0706596cb637101870b368;p=thirdparty%2Fkernel%2Fstable-queue.git 5.15-stable patches added patches: memblock-use-kfree-to-release-kmalloced-memblock-regions.patch --- diff --git a/queue-5.15/memblock-use-kfree-to-release-kmalloced-memblock-regions.patch b/queue-5.15/memblock-use-kfree-to-release-kmalloced-memblock-regions.patch new file mode 100644 index 00000000000..dbaf0c4fada --- /dev/null +++ b/queue-5.15/memblock-use-kfree-to-release-kmalloced-memblock-regions.patch @@ -0,0 +1,46 @@ +From c94afc46cae7ad41b2ad6a99368147879f4b0e56 Mon Sep 17 00:00:00 2001 +From: Miaohe Lin +Date: Thu, 17 Feb 2022 22:53:27 +0800 +Subject: memblock: use kfree() to release kmalloced memblock regions + +From: Miaohe Lin + +commit c94afc46cae7ad41b2ad6a99368147879f4b0e56 upstream. + +memblock.{reserved,memory}.regions may be allocated using kmalloc() in +memblock_double_array(). Use kfree() to release these kmalloced regions +indicated by memblock_{reserved,memory}_in_slab. + +Signed-off-by: Miaohe Lin +Fixes: 3010f876500f ("mm: discard memblock data later") +Signed-off-by: Mike Rapoport +Signed-off-by: Greg Kroah-Hartman +--- + mm/memblock.c | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +--- a/mm/memblock.c ++++ b/mm/memblock.c +@@ -366,14 +366,20 @@ void __init memblock_discard(void) + addr = __pa(memblock.reserved.regions); + size = PAGE_ALIGN(sizeof(struct memblock_region) * + memblock.reserved.max); +- __memblock_free_late(addr, size); ++ if (memblock_reserved_in_slab) ++ kfree(memblock.reserved.regions); ++ else ++ __memblock_free_late(addr, size); + } + + if (memblock.memory.regions != memblock_memory_init_regions) { + addr = __pa(memblock.memory.regions); + size = PAGE_ALIGN(sizeof(struct memblock_region) * + memblock.memory.max); +- __memblock_free_late(addr, size); ++ if (memblock_memory_in_slab) ++ kfree(memblock.memory.regions); ++ else ++ __memblock_free_late(addr, size); + } + + memblock_memory = NULL; diff --git a/queue-5.15/series b/queue-5.15/series index 4d6a9850305..f254ab8edfa 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -134,3 +134,4 @@ tty-n_gsm-fix-deadlock-in-gsmtty_open.patch pinctrl-fix-loop-in-k210_pinconf_get_drive.patch pinctrl-k210-fix-bias-pull-up.patch gpio-tegra186-fix-chip_data-type-confusion.patch +memblock-use-kfree-to-release-kmalloced-memblock-regions.patch