mips: Discard rudiments from bootmem_init
authorSerge Semin <fancer.lancer@gmail.com>
Tue, 23 Apr 2019 22:47:38 +0000 (01:47 +0300)
committerPaul Burton <paul.burton@mips.com>
Wed, 24 Apr 2019 22:24:55 +0000 (15:24 -0700)
There is a pointless code left in the bootmem_init() method since
the bootmem allocator removal. First part resides the PFN ranges
calculation loop. The conditional expressions and continue operator
are useless there, since nothing is done after them. Second part is
in RAM ranges installation loop. We can simplify the conditions cascade
a bit without much of the logic redefinition, so to reduce the code
length. In particular the end boundary value can be verified after
the possible reduction to be below max_low_pfn.

Signed-off-by: Serge Semin <fancer.lancer@gmail.com>
Signed-off-by: Paul Burton <paul.burton@mips.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: James Hogan <jhogan@kernel.org>
Cc: Matt Redfearn <matt.redfearn@mips.com>
Cc: Mike Rapoport <rppt@linux.ibm.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Thomas Bogendoerfer <tbogendoerfer@suse.de>
Cc: Huacai Chen <chenhc@lemote.com>
Cc: Stefan Agner <stefan@agner.ch>
Cc: Stephen Rothwell <sfr@canb.auug.org.au>
Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
Cc: Juergen Gross <jgross@suse.com>
Cc: linux-mips@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
arch/mips/kernel/setup.c

index 0ee033c..53d93a7 100644 (file)
@@ -394,10 +394,7 @@ static void __init bootmem_init(void)
        min_low_pfn = ~0UL;
        max_low_pfn = 0;
 
-       /*
-        * Find the highest page frame number we have available
-        * and the lowest used RAM address
-        */
+       /* Find the highest and lowest page frame numbers we have available. */
        for (i = 0; i < boot_mem_map.nr_map; i++) {
                unsigned long start, end;
 
@@ -427,13 +424,6 @@ static void __init bootmem_init(void)
                        max_low_pfn = end;
                if (start < min_low_pfn)
                        min_low_pfn = start;
-               if (end <= reserved_end)
-                       continue;
-#ifdef CONFIG_BLK_DEV_INITRD
-               /* Skip zones before initrd and initrd itself */
-               if (initrd_end && end <= (unsigned long)PFN_UP(__pa(initrd_end)))
-                       continue;
-#endif
        }
 
        if (min_low_pfn >= max_low_pfn)
@@ -474,6 +464,7 @@ static void __init bootmem_init(void)
                max_low_pfn = PFN_DOWN(HIGHMEM_START);
        }
 
+       /* Install all valid RAM ranges to the memblock memory region */
        for (i = 0; i < boot_mem_map.nr_map; i++) {
                unsigned long start, end;
 
@@ -481,21 +472,15 @@ static void __init bootmem_init(void)
                end = PFN_DOWN(boot_mem_map.map[i].addr
                                + boot_mem_map.map[i].size);
 
-               if (start <= min_low_pfn)
+               if (start < min_low_pfn)
                        start = min_low_pfn;
-               if (start >= end)
-                       continue;
-
 #ifndef CONFIG_HIGHMEM
+               /* Ignore highmem regions if highmem is unsupported */
                if (end > max_low_pfn)
                        end = max_low_pfn;
-
-               /*
-                * ... finally, is the area going away?
-                */
+#endif
                if (end <= start)
                        continue;
-#endif
 
                memblock_add_node(PFN_PHYS(start), PFN_PHYS(end - start), 0);
        }