[RESEND PATCH] makedumpfile: ARM: fix bug on sparse_decode_mem_map

Liu Hua sdu.liu at huawei.com
Tue May 6 22:28:59 PDT 2014


In sparse_decode_mem_map, makedumpfile checks whether coded_mem_map
is a vald vaddr. But coded_mem_map is not real vaddr. So this patch
checks decoded_mem_map instead.

Signed-off-by: Liu Hua <sdu.liu at huawei.com>
---
 makedumpfile.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/makedumpfile.c b/makedumpfile.c
index 16081a5..94515f6 100644
--- a/makedumpfile.c
+++ b/makedumpfile.c
@@ -2794,13 +2794,15 @@ section_mem_map_addr(unsigned long addr)
 unsigned long
 sparse_decode_mem_map(unsigned long coded_mem_map, unsigned long section_nr)
 {
-	if (!is_kvaddr(coded_mem_map))
-		return NOT_KV_ADDR;
+	unsigned long mem_map;
 
-	return coded_mem_map +
+	mem_map =  coded_mem_map +
 	    (SECTION_NR_TO_PFN(section_nr) * SIZE(page));
-}
 
+	if (!is_kvaddr(mem_map))
+		return NOT_KV_ADDR;
+	return mem_map;
+}
 int
 get_mm_sparsemem(void)
 {
-- 
1.9.0




More information about the kexec mailing list