]> git.karo-electronics.de Git - linux-beck.git/blobdiff - arch/arm64/mm/init.c
Merge branches 'fiq' (early part), 'fixes', 'l2c' (early part) and 'misc' into for...
[linux-beck.git] / arch / arm64 / mm / init.c
index 5472c24018766ea5348d2d0cb56f9a932f46356a..adf5e07677d8e377208abc659d4f519a9c3a10f4 100644 (file)
@@ -149,8 +149,7 @@ void __init arm64_memblock_init(void)
                memblock_reserve(__virt_to_phys(initrd_start), initrd_end - initrd_start);
 #endif
 
-       if (!efi_enabled(EFI_MEMMAP))
-               early_init_fdt_scan_reserved_mem();
+       early_init_fdt_scan_reserved_mem();
 
        /* 4GB maximum for 32-bit only capable devices */
        if (IS_ENABLED(CONFIG_ZONE_DMA))
@@ -334,8 +333,14 @@ static int keep_initrd;
 
 void free_initrd_mem(unsigned long start, unsigned long end)
 {
-       if (!keep_initrd)
+       if (!keep_initrd) {
+               if (start == initrd_start)
+                       start = round_down(start, PAGE_SIZE);
+               if (end == initrd_end)
+                       end = round_up(end, PAGE_SIZE);
+
                free_reserved_area((void *)start, (void *)end, 0, "initrd");
+       }
 }
 
 static int __init keepinitrd_setup(char *__unused)