aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/include/asm/setup.h
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2012-07-12 23:57:35 +0100
committerRussell King <rmk+kernel@arm.linux.org.uk>2012-07-29 22:19:14 +0100
commita5d5f7daa744b34477c4a12728bde0a1694a1707 (patch)
tree386299b6bedc567d937d2d8a35a3ae618ec22a60 /arch/arm/include/asm/setup.h
parentARM: 7457/1: smp: Fix suspicious RCU originating from cpu_die() (diff)
downloadlinux-dev-a5d5f7daa744b34477c4a12728bde0a1694a1707.tar.xz
linux-dev-a5d5f7daa744b34477c4a12728bde0a1694a1707.zip
ARM: 7465/1: Handle >4GB memory sizes in device tree and mem=size@start option
The memory regions which are passed to arm_add_memory() from device tree blobs via early_init_dt_add_memory_arch() can have sizes which are larger than will fit in a 32 bit integer, so switch to using a phys_addr_t to hold them, to avoid silently dropping the top 32 bits of the size. Similarly, use phys_addr_t in early_mem() so that mem=size@start command line options specifying more than 4GB behave sensibly. Acked-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/include/asm/setup.h')
-rw-r--r--arch/arm/include/asm/setup.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/arm/include/asm/setup.h b/arch/arm/include/asm/setup.h
index 23ebc0c82a39..24d284a1bfc7 100644
--- a/arch/arm/include/asm/setup.h
+++ b/arch/arm/include/asm/setup.h
@@ -196,7 +196,7 @@ static const struct tagtable __tagtable_##fn __tag = { tag, fn }
struct membank {
phys_addr_t start;
- unsigned long size;
+ phys_addr_t size;
unsigned int highmem;
};
@@ -217,7 +217,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, unsigned long size);
+extern int arm_add_memory(phys_addr_t start, phys_addr_t size);
extern void early_print(const char *str, ...);
extern void dump_machine_table(void);