ARM: 7863/1: Let arm_add_memory() always use 64-bit arguments
authorMagnus Damm <damm@opensource.se>
Tue, 22 Oct 2013 16:53:16 +0000 (17:53 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Tue, 29 Oct 2013 11:06:28 +0000 (11:06 +0000)
The DTB and/or the kernel command line may pass
64-bit addresses regardless of kernel configuration,
so update arm_add_memory() to take 64-bit arguments
independently of the phys_addr_t size.

This allows non-wrapping handling of high memory
banks such as the second memory bank of APE6EVM
(at 0x2_0000_0000) in case of 32-bit phys_addr_t.

Signed-off-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/include/asm/setup.h
arch/arm/kernel/setup.c

index c50f0560950110b9f60d21f9ea9647be4ee77688..8d6a089dfb7628fe166f3757cd8aeba3c8270f0d 100644 (file)
@@ -49,7 +49,7 @@ extern struct meminfo meminfo;
 #define bank_phys_end(bank)    ((bank)->start + (bank)->size)
 #define bank_phys_size(bank)   (bank)->size
 
-extern int arm_add_memory(phys_addr_t start, phys_addr_t size);
+extern int arm_add_memory(u64 start, u64 size);
 extern void early_print(const char *str, ...);
 extern void dump_machine_table(void);
 
index a4852dea088b7b390cb27c20a5a6ebfc00b96bcf..5ec4443af08b5532a433129794217cc4936d630c 100644 (file)
@@ -621,7 +621,7 @@ void __init dump_machine_table(void)
                /* can't use cpu_relax() here as it may require MMU setup */;
 }
 
-int __init arm_add_memory(phys_addr_t start, phys_addr_t size)
+int __init arm_add_memory(u64 start, u64 size)
 {
        struct membank *bank = &meminfo.bank[meminfo.nr_banks];
 
@@ -671,8 +671,8 @@ int __init arm_add_memory(phys_addr_t start, phys_addr_t size)
 static int __init early_mem(char *p)
 {
        static int usermem __initdata = 0;
-       phys_addr_t size;
-       phys_addr_t start;
+       u64 size;
+       u64 start;
        char *endp;
 
        /*