If the value of crashk_res.end is non-zero in this function, it indicates
that function reserve_crashkernel() has been called under condition
"if (!IS_ENABLED(CONFIG_ZONE_DMA) && !IS_ENABLED(CONFIG_ZONE_DMA32))" in
zone_sizes_init() before. And obviously the command line option
"crashkernel=" must also exist, so crash_mem_map is also true.

Signed-off-by: Zhen Lei <thunder.leiz...@huawei.com>
---
 arch/arm64/mm/mmu.c | 31 +++++++++++++------------------
 1 file changed, 13 insertions(+), 18 deletions(-)

diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c
index 626ec32873c6c36..7666b4955e45cb3 100644
--- a/arch/arm64/mm/mmu.c
+++ b/arch/arm64/mm/mmu.c
@@ -528,14 +528,12 @@ static void __init map_mem(pgd_t *pgdp)
        memblock_mark_nomap(kernel_start, kernel_end - kernel_start);
 
 #ifdef CONFIG_KEXEC_CORE
-       if (crash_mem_map) {
-               if (IS_ENABLED(CONFIG_ZONE_DMA) ||
-                   IS_ENABLED(CONFIG_ZONE_DMA32))
-                       flags |= NO_BLOCK_MAPPINGS | NO_CONT_MAPPINGS;
-               else if (crashk_res.end)
-                       memblock_mark_nomap(crashk_res.start,
-                           resource_size(&crashk_res));
-       }
+       if (crash_mem_map &&
+           (IS_ENABLED(CONFIG_ZONE_DMA) || IS_ENABLED(CONFIG_ZONE_DMA32)))
+               flags |= NO_BLOCK_MAPPINGS | NO_CONT_MAPPINGS;
+       else if (crashk_res.end)
+               memblock_mark_nomap(crashk_res.start,
+                                   resource_size(&crashk_res));
 #endif
 
        /* map all the memory banks */
@@ -571,16 +569,13 @@ static void __init map_mem(pgd_t *pgdp)
         * through /sys/kernel/kexec_crash_size interface.
         */
 #ifdef CONFIG_KEXEC_CORE
-       if (crash_mem_map &&
-           !IS_ENABLED(CONFIG_ZONE_DMA) && !IS_ENABLED(CONFIG_ZONE_DMA32)) {
-               if (crashk_res.end) {
-                       __map_memblock(pgdp, crashk_res.start,
-                                      crashk_res.end + 1,
-                                      PAGE_KERNEL,
-                                      NO_BLOCK_MAPPINGS | NO_CONT_MAPPINGS);
-                       memblock_clear_nomap(crashk_res.start,
-                                            resource_size(&crashk_res));
-               }
+       if (crashk_res.end) {
+               __map_memblock(pgdp, crashk_res.start,
+                              crashk_res.end + 1,
+                              PAGE_KERNEL,
+                              NO_BLOCK_MAPPINGS | NO_CONT_MAPPINGS);
+               memblock_clear_nomap(crashk_res.start,
+                                    resource_size(&crashk_res));
        }
 #endif
 }
-- 
2.25.1


_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

Reply via email to