]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
ARM: Convert platform reservations to use LMB rather than bootmem
authorRussell King <rmk+kernel@arm.linux.org.uk>
Sat, 22 May 2010 18:47:18 +0000 (19:47 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Tue, 27 Jul 2010 07:48:23 +0000 (08:48 +0100)
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
14 files changed:
arch/arm/include/asm/memblock.h
arch/arm/kernel/setup.c
arch/arm/mach-clps711x/edb7211-arch.c
arch/arm/mach-integrator/core.c
arch/arm/mach-pxa/palmt5.c
arch/arm/mach-pxa/palmtreo.c
arch/arm/mach-s3c2410/mach-h1940.c
arch/arm/mach-s3c2440/mach-rx1950.c
arch/arm/mach-s3c2440/mach-rx3715.c
arch/arm/mach-u300/u300.c
arch/arm/mm/init.c
arch/arm/mm/mm.h
arch/arm/mm/mmu.c
arch/arm/mm/nommu.c

index 3a1d58096f4473481c83ad53bcb0a5271e8db972..fdbc43b2e6c05ac45a0d7f8d0692eb013e5ed862 100644 (file)
@@ -9,7 +9,8 @@ extern phys_addr_t lowmem_end_addr;
 #endif
 
 struct meminfo;
+struct machine_desc;
 
-extern void arm_memblock_init(struct meminfo *);
+extern void arm_memblock_init(struct meminfo *, struct machine_desc *);
 
 #endif
index dfd293477751f816a8553e61b0156777d2cbc703..31b2643bb0c643bab61b09a2a23633d18f67a3cd 100644 (file)
@@ -716,7 +716,7 @@ void __init setup_arch(char **cmdline_p)
 
        parse_early_param();
 
-       arm_memblock_init(&meminfo);
+       arm_memblock_init(&meminfo, mdesc);
 
        paging_init(mdesc);
        request_standard_resources(&meminfo, mdesc);
index 077f4051a06a6165437225d0f3bc049e1bdfb061..4a7a2322979a17c3dcb833bf44122f8af51bba8a 100644 (file)
@@ -18,7 +18,7 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 #include <linux/init.h>
-#include <linux/bootmem.h>
+#include <linux/memblock.h>
 #include <linux/types.h>
 #include <linux/string.h>
 
@@ -33,7 +33,7 @@ extern void edb7211_map_io(void);
 /* Reserve screen memory region at the start of main system memory. */
 static void __init edb7211_reserve(void)
 {
-       reserve_bootmem(PHYS_OFFSET, 0x00020000, BOOTMEM_DEFAULT);
+       memblock_reserve(PHYS_OFFSET, 0x00020000);
 }
 
 static void __init
index f815a1863f709425006faa013bc5476a78266c9e..bcb26f01b26c40181ccad8b85e884a4aa24ce22d 100644 (file)
@@ -14,7 +14,7 @@
 #include <linux/spinlock.h>
 #include <linux/interrupt.h>
 #include <linux/irq.h>
-#include <linux/bootmem.h>
+#include <linux/memblock.h>
 #include <linux/sched.h>
 #include <linux/smp.h>
 #include <linux/termios.h>
@@ -225,5 +225,5 @@ EXPORT_SYMBOL(cm_control);
  */
 void __init integrator_reserve(void)
 {
-       reserve_bootmem(PHYS_OFFSET, __pa(swapper_pg_dir) - PHYS_OFFSET, BOOTMEM_DEFAULT);
+       memblock_reserve(PHYS_OFFSET, __pa(swapper_pg_dir) - PHYS_OFFSET);
 }
index 39fd788ab63bc599cae672a43f123a2d245d4885..5e92d84fe50d0805be94a07f583c40ee46f0e6c4 100644 (file)
@@ -21,7 +21,7 @@
 #include <linux/irq.h>
 #include <linux/gpio_keys.h>
 #include <linux/input.h>
-#include <linux/bootmem.h>
+#include <linux/memblock.h>
 #include <linux/pda_power.h>
 #include <linux/pwm_backlight.h>
 #include <linux/gpio.h>
@@ -399,7 +399,7 @@ static void __init palmt5_udc_init(void)
 
 static void __init palmt5_reserve(void)
 {
-       reserve_bootmem(0xa0200000, 0x1000, BOOTMEM_EXCLUSIVE);
+       memblock_reserve(0xa0200000, 0x1000);
 }
 
 static void __init palmt5_init(void)
index f5db4f7d7158cfc8a2f1aae320ac98d25b6ae587..3d0c9cc2a40648a049a3ccc81a34c5f03f4126de 100644 (file)
@@ -20,7 +20,7 @@
 #include <linux/irq.h>
 #include <linux/gpio_keys.h>
 #include <linux/input.h>
-#include <linux/bootmem.h>
+#include <linux/memblock.h>
 #include <linux/pda_power.h>
 #include <linux/pwm_backlight.h>
 #include <linux/gpio.h>
@@ -636,8 +636,8 @@ static void __init treo_lcd_power_init(void)
 
 static void __init treo_reserve(void)
 {
-       reserve_bootmem(0xa0000000, 0x1000, BOOTMEM_EXCLUSIVE);
-       reserve_bootmem(0xa2000000, 0x1000, BOOTMEM_EXCLUSIVE);
+       memblock_reserve(0xa0000000, 0x1000);
+       memblock_reserve(0xa2000000, 0x1000);
 }
 
 static void __init treo_init(void)
index 2407aab4d1b803aef7a716640056f873297bafd0..3ba3bab139d0917ce45feaeb079573428f8a2af2 100644 (file)
@@ -15,7 +15,7 @@
 #include <linux/types.h>
 #include <linux/interrupt.h>
 #include <linux/list.h>
-#include <linux/bootmem.h>
+#include <linux/memblock.h>
 #include <linux/timer.h>
 #include <linux/init.h>
 #include <linux/sysdev.h>
@@ -308,8 +308,8 @@ static void __init h1940_map_io(void)
 /* H1940 and RX3715 need to reserve this for suspend */
 static void __init h1940_reserve(void)
 {
-       reserve_bootmem(0x30003000, 0x1000, BOOTMEM_DEFAULT);
-       reserve_bootmem(0x30081000, 0x1000, BOOTMEM_DEFAULT);
+       memblock_reserve(0x30003000, 0x1000);
+       memblock_reserve(0x30081000, 0x1000);
 }
 
 static void __init h1940_init_irq(void)
index f26d5d60c13d7a6c40c8d9ae5529133c1b55d1c0..142d1f92117651e60fdad7e55fcc52997e430962 100644 (file)
@@ -15,7 +15,7 @@
 #include <linux/types.h>
 #include <linux/interrupt.h>
 #include <linux/list.h>
-#include <linux/bootmem.h>
+#include <linux/memblock.h>
 #include <linux/delay.h>
 #include <linux/timer.h>
 #include <linux/init.h>
@@ -574,8 +574,8 @@ static void __init rx1950_init_machine(void)
 /* H1940 and RX3715 need to reserve this for suspend */
 static void __init rx1950_reserve(void)
 {
-       reserve_bootmem(0x30003000, 0x1000, BOOTMEM_DEFAULT);
-       reserve_bootmem(0x30081000, 0x1000, BOOTMEM_DEFAULT);
+       memblock_reserve(0x30003000, 0x1000);
+       memblock_reserve(0x30081000, 0x1000);
 }
 
 MACHINE_START(RX1950, "HP iPAQ RX1950")
index 6ebdb7bcf0856939669e3639e37c12b90c0c23cf..6bb44f75a9ce65094a35c1bdad78775c1c655eee 100644 (file)
@@ -15,7 +15,7 @@
 #include <linux/types.h>
 #include <linux/interrupt.h>
 #include <linux/list.h>
-#include <linux/bootmem.h>
+#include <linux/memblock.h>
 #include <linux/timer.h>
 #include <linux/init.h>
 #include <linux/tty.h>
@@ -195,8 +195,8 @@ static void __init rx3715_map_io(void)
 /* H1940 and RX3715 need to reserve this for suspend */
 static void __init rx3715_reserve(void)
 {
-       reserve_bootmem(0x30003000, 0x1000, BOOTMEM_DEFAULT);
-       reserve_bootmem(0x30081000, 0x1000, BOOTMEM_DEFAULT);
+       memblock_reserve(0x30003000, 0x1000);
+       memblock_reserve(0x30081000, 0x1000);
 }
 
 static void __init rx3715_init_irq(void)
index 178dca4f955581fa1519b9be11d181ab811eeee5..bfcda9820888b6083fd10779b63fe89580f76036 100644 (file)
@@ -14,7 +14,7 @@
 #include <linux/sched.h>
 #include <linux/interrupt.h>
 #include <linux/ioport.h>
-#include <linux/bootmem.h>
+#include <linux/memblock.h>
 #include <linux/platform_device.h>
 #include <linux/io.h>
 #include <mach/hardware.h>
@@ -33,7 +33,7 @@ static void __init u300_reserve(void)
 #ifdef CONFIG_MACH_U300_SINGLE_RAM
 #if ((CONFIG_MACH_U300_ACCESS_MEM_SIZE & 1) == 1) && \
        CONFIG_MACH_U300_2MB_ALIGNMENT_FIX
-        reserve_bootmem(PHYS_OFFSET, 0x00100000, BOOTMEM_DEFAULT);
+        memblock_reserve(PHYS_OFFSET, 0x00100000);
 #endif
 #endif
 }
index 4877e06308b7ec5bfb503e5ed98cda9582d36038..99d6bc9b89bbda2d2cc690cee2bf0c9e49ae339f 100644 (file)
@@ -271,7 +271,7 @@ static void arm_memory_present(struct meminfo *mi)
 }
 #endif
 
-void __init arm_memblock_init(struct meminfo *mi)
+void __init arm_memblock_init(struct meminfo *mi, struct machine_desc *mdesc)
 {
        int i;
 
@@ -297,11 +297,15 @@ void __init arm_memblock_init(struct meminfo *mi)
 
        arm_mm_memblock_reserve();
 
+       /* reserve any platform specific memblock areas */
+       if (mdesc->reserve)
+               mdesc->reserve();
+
        memblock_analyze();
        memblock_dump_all();
 }
 
-void __init bootmem_init(struct machine_desc *mdesc)
+void __init bootmem_init(void)
 {
        struct meminfo *mi = &meminfo;
        unsigned long min, max_low, max_high;
@@ -312,9 +316,6 @@ void __init bootmem_init(struct machine_desc *mdesc)
 
        arm_bootmem_init(mi, min, max_low);
 
-       if (mdesc->reserve)
-               mdesc->reserve();
-
        /*
         * Sparsemem tries to allocate bootmem in memory_present(),
         * so must be done after the fixed reservations
index fcfffae69b49569e79d12bdc1a0953d84533f2d0..6630620380a4aa0f538aed006a2de6f04c71d3dd 100644 (file)
@@ -28,6 +28,5 @@ extern void __flush_dcache_page(struct address_space *mapping, struct page *page
 
 #endif
 
-struct machine_desc;
-void __init bootmem_init(struct machine_desc *);
+void __init bootmem_init(void);
 void arm_mm_memblock_reserve(void);
index 833a6c3f70c0b378c2c715ce777b2b12dd2b3e6a..d5541adc352043f241d9b3e7f90fa9452abe9b00 100644 (file)
@@ -1006,7 +1006,7 @@ void __init paging_init(struct machine_desc *mdesc)
        /* allocate the zero page. */
        zero_page = early_alloc(PAGE_SIZE);
 
-       bootmem_init(mdesc);
+       bootmem_init();
 
        empty_zero_page = virt_to_page(zero_page);
        __flush_dcache_page(NULL, empty_zero_page);
index 40e38fcccc7aa56c7f0f39338f6146996bcac530..687d02319a41ea68afcfe65698204a4db84d8400 100644 (file)
@@ -33,7 +33,7 @@ void __init arm_mm_memblock_reserve(void)
  */
 void __init paging_init(struct machine_desc *mdesc)
 {
-       bootmem_init(mdesc);
+       bootmem_init();
 }
 
 /*