From edc4648e608533e05f323b5682ab98ebd37eacca Mon Sep 17 00:00:00 2001 Message-Id: From: Pratyush Anand Date: Thu, 30 Jun 2016 23:16:18 +0530 Subject: [PATCH] arm64: prefer reading memory ranges from iomem over fdt Some of the fdt might not have correct memory ranges defined in "memory" nodes. For example: apm-mustang.dts expects boot loader to update "memory" node with appropriate value. Now, what if boot loader /firmware does not update it. Offcourse, its an issue in firmware. But, since we will always have more updated memory ranges in /proc/iomem, so prefer to read it from there. Specifically, after kernel commit 500899c2cc3e3f06140373b587a69d30650f2d9d, it becomes important to work kexec with such buggy firmware. Signed-off-by: Pratyush Anand --- kexec/arch/arm64/kexec-arm64.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kexec/arch/arm64/kexec-arm64.c b/kexec/arch/arm64/kexec-arm64.c index f936dd2de458..d1fdd64a60c2 100644 --- a/kexec/arch/arm64/kexec-arm64.c +++ b/kexec/arch/arm64/kexec-arm64.c @@ -1016,10 +1016,10 @@ int get_memory_ranges(struct memory_range **range, int *ranges, unsigned int count; int result; - result = get_memory_ranges_dt(array, &count); + result = get_memory_ranges_iomem(array, &count); if (result) - result = get_memory_ranges_iomem(array, &count); + result = get_memory_ranges_dt(array, &count); *range = result ? NULL : array; *ranges = result ? 0 : count; -- 2.5.5