ARM: 6673/1: LPAE: use phys_addr_t instead of unsigned long for start of membanks
The unsigned long datatype is not sufficient for mapping physical addresses >= 4GB. This patch ensures that the phys_addr_t datatype is used to represent the start address of a membank, which may reside above the 4GB boundary. Acked-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
parent
e33b9d0878
commit
f60892d3e3
|
@ -199,7 +199,7 @@ static struct tagtable __tagtable_##fn __tag = { tag, fn }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
struct membank {
|
struct membank {
|
||||||
unsigned long start;
|
phys_addr_t start;
|
||||||
unsigned long size;
|
unsigned long size;
|
||||||
unsigned int highmem;
|
unsigned int highmem;
|
||||||
};
|
};
|
||||||
|
|
|
@ -442,7 +442,7 @@ static struct machine_desc * __init setup_machine(unsigned int nr)
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int __init arm_add_memory(unsigned long start, unsigned long size)
|
static int __init arm_add_memory(phys_addr_t start, unsigned long size)
|
||||||
{
|
{
|
||||||
struct membank *bank = &meminfo.bank[meminfo.nr_banks];
|
struct membank *bank = &meminfo.bank[meminfo.nr_banks];
|
||||||
|
|
||||||
|
@ -478,7 +478,8 @@ static int __init arm_add_memory(unsigned long start, unsigned long size)
|
||||||
static int __init early_mem(char *p)
|
static int __init early_mem(char *p)
|
||||||
{
|
{
|
||||||
static int usermem __initdata = 0;
|
static int usermem __initdata = 0;
|
||||||
unsigned long size, start;
|
unsigned long size;
|
||||||
|
phys_addr_t start;
|
||||||
char *endp;
|
char *endp;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in New Issue