From: Greg Kroah-Hartman Date: Thu, 13 Jun 2019 15:37:59 +0000 (+0200) Subject: drop queue-4.14/mips-make-sure-dt-memory-regions-are-valid.patch X-Git-Tag: v5.1.10~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0951c6ce10618cc90b5d257d5de5042b7dd8ed18;p=thirdparty%2Fkernel%2Fstable-queue.git drop queue-4.14/mips-make-sure-dt-memory-regions-are-valid.patch --- diff --git a/queue-4.14/mips-make-sure-dt-memory-regions-are-valid.patch b/queue-4.14/mips-make-sure-dt-memory-regions-are-valid.patch deleted file mode 100644 index f1fc1270736..00000000000 --- a/queue-4.14/mips-make-sure-dt-memory-regions-are-valid.patch +++ /dev/null @@ -1,69 +0,0 @@ -From 50ba11f352fb9cdb18e22b27448b636a691f0607 Mon Sep 17 00:00:00 2001 -From: Serge Semin -Date: Fri, 3 May 2019 20:50:40 +0300 -Subject: mips: Make sure dt memory regions are valid - -[ Upstream commit 93fa5b280761a4dbb14c5330f260380385ab2b49 ] - -There are situations when memory regions coming from dts may be -too big for the platform physical address space. This especially -concerns XPA-capable systems. Bootloader may determine more than 4GB -memory available and pass it to the kernel over dts memory node, while -kernel is built without XPA/64BIT support. In this case the region -may either simply be truncated by add_memory_region() method -or by u64->phys_addr_t type casting. But in worst case the method -can even drop the memory region if it exceeds PHYS_ADDR_MAX size. -So lets make sure the retrieved from dts memory regions are valid, -and if some of them aren't, just manually truncate them with a warning -printed out. - -Signed-off-by: Serge Semin -Signed-off-by: Paul Burton -Cc: Ralf Baechle -Cc: James Hogan -Cc: Mike Rapoport -Cc: Andrew Morton -Cc: Michal Hocko -Cc: Greg Kroah-Hartman -Cc: Thomas Bogendoerfer -Cc: Huacai Chen -Cc: Stefan Agner -Cc: Stephen Rothwell -Cc: Alexandre Belloni -Cc: Juergen Gross -Cc: Serge Semin -Cc: linux-mips@vger.kernel.org -Cc: linux-kernel@vger.kernel.org -Signed-off-by: Sasha Levin ---- - arch/mips/kernel/prom.c | 14 +++++++++++++- - 1 file changed, 13 insertions(+), 1 deletion(-) - -diff --git a/arch/mips/kernel/prom.c b/arch/mips/kernel/prom.c -index 0dbcd152a1a9..90f332f0625f 100644 ---- a/arch/mips/kernel/prom.c -+++ b/arch/mips/kernel/prom.c -@@ -41,7 +41,19 @@ char *mips_get_machine_name(void) - #ifdef CONFIG_USE_OF - void __init early_init_dt_add_memory_arch(u64 base, u64 size) - { -- return add_memory_region(base, size, BOOT_MEM_RAM); -+ if (base >= PHYS_ADDR_MAX) { -+ pr_warn("Trying to add an invalid memory region, skipped\n"); -+ return; -+ } -+ -+ /* Truncate the passed memory region instead of type casting */ -+ if (base + size - 1 >= PHYS_ADDR_MAX || base + size < base) { -+ pr_warn("Truncate memory region %llx @ %llx to size %llx\n", -+ size, base, PHYS_ADDR_MAX - base); -+ size = PHYS_ADDR_MAX - base; -+ } -+ -+ add_memory_region(base, size, BOOT_MEM_RAM); - } - - void * __init early_init_dt_alloc_memory_arch(u64 size, u64 align) --- -2.20.1 - diff --git a/queue-4.14/series b/queue-4.14/series index d5fe6696b18..5d71d3d7383 100644 --- a/queue-4.14/series +++ b/queue-4.14/series @@ -31,7 +31,6 @@ percpu-remove-spurious-lock-dependency-between-percp.patch configfs-fix-possible-use-after-free-in-configfs_reg.patch uml-fix-a-boot-splat-wrt-use-of-cpu_all_mask.patch mmc-mmci-prevent-polling-for-busy-detection-in-irq-c.patch -mips-make-sure-dt-memory-regions-are-valid.patch watchdog-imx2_wdt-fix-set_timeout-for-big-timeout-va.patch watchdog-fix-compile-time-error-of-pretimeout-govern.patch blk-mq-move-cancel-of-requeue_work-into-blk_mq_relea.patch