diff options
author | Becky Bruce <beckyb@kernel.crashing.org> | 2009-05-08 08:19:27 -0400 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2009-05-15 02:43:41 -0400 |
commit | 49a849652513235a244dfbf5e58c54f796bd1148 (patch) | |
tree | 809fe33bad6255fab153fb5a7f03170150ab88c7 /arch | |
parent | 31207dab7d2e63795eb15823947bd2f7025b08e2 (diff) |
powerpc: Allow mem=x cmdline to work with 4G+
We're currently choking on mem=4g (and above) due to memory_limit
being specified as an unsigned long. Make memory_limit
phys_addr_t to fix this.
Signed-off-by: Becky Bruce <beckyb@kernel.crashing.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/powerpc/include/asm/system.h | 2 | ||||
-rw-r--r-- | arch/powerpc/kernel/machine_kexec.c | 4 | ||||
-rw-r--r-- | arch/powerpc/kernel/prom.c | 8 | ||||
-rw-r--r-- | arch/powerpc/mm/mem.c | 2 |
4 files changed, 8 insertions, 8 deletions
diff --git a/arch/powerpc/include/asm/system.h b/arch/powerpc/include/asm/system.h index f612798e1c93..2b2420a49884 100644 --- a/arch/powerpc/include/asm/system.h +++ b/arch/powerpc/include/asm/system.h | |||
@@ -212,7 +212,7 @@ extern struct task_struct *_switch(struct thread_struct *prev, | |||
212 | extern unsigned int rtas_data; | 212 | extern unsigned int rtas_data; |
213 | extern int mem_init_done; /* set on boot once kmalloc can be called */ | 213 | extern int mem_init_done; /* set on boot once kmalloc can be called */ |
214 | extern int init_bootmem_done; /* set on !NUMA once bootmem is available */ | 214 | extern int init_bootmem_done; /* set on !NUMA once bootmem is available */ |
215 | extern unsigned long memory_limit; | 215 | extern phys_addr_t memory_limit; |
216 | extern unsigned long klimit; | 216 | extern unsigned long klimit; |
217 | 217 | ||
218 | extern void *alloc_maybe_bootmem(size_t size, gfp_t mask); | 218 | extern void *alloc_maybe_bootmem(size_t size, gfp_t mask); |
diff --git a/arch/powerpc/kernel/machine_kexec.c b/arch/powerpc/kernel/machine_kexec.c index d59e2b1bdcba..bb3d893a8353 100644 --- a/arch/powerpc/kernel/machine_kexec.c +++ b/arch/powerpc/kernel/machine_kexec.c | |||
@@ -125,8 +125,8 @@ void __init reserve_crashkernel(void) | |||
125 | /* Crash kernel trumps memory limit */ | 125 | /* Crash kernel trumps memory limit */ |
126 | if (memory_limit && memory_limit <= crashk_res.end) { | 126 | if (memory_limit && memory_limit <= crashk_res.end) { |
127 | memory_limit = crashk_res.end + 1; | 127 | memory_limit = crashk_res.end + 1; |
128 | printk("Adjusted memory limit for crashkernel, now 0x%lx\n", | 128 | printk("Adjusted memory limit for crashkernel, now 0x%llx\n", |
129 | memory_limit); | 129 | (unsigned long long)memory_limit); |
130 | } | 130 | } |
131 | 131 | ||
132 | printk(KERN_INFO "Reserving %ldMB of memory at %ldMB " | 132 | printk(KERN_INFO "Reserving %ldMB of memory at %ldMB " |
diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c index 5ec6a9e23933..ce01ff2474da 100644 --- a/arch/powerpc/kernel/prom.c +++ b/arch/powerpc/kernel/prom.c | |||
@@ -426,7 +426,7 @@ static int __init early_parse_mem(char *p) | |||
426 | return 1; | 426 | return 1; |
427 | 427 | ||
428 | memory_limit = PAGE_ALIGN(memparse(p, &p)); | 428 | memory_limit = PAGE_ALIGN(memparse(p, &p)); |
429 | DBG("memory limit = 0x%lx\n", memory_limit); | 429 | DBG("memory limit = 0x%llx\n", (unsigned long long)memory_limit); |
430 | 430 | ||
431 | return 0; | 431 | return 0; |
432 | } | 432 | } |
@@ -1160,7 +1160,7 @@ static inline void __init phyp_dump_reserve_mem(void) {} | |||
1160 | 1160 | ||
1161 | void __init early_init_devtree(void *params) | 1161 | void __init early_init_devtree(void *params) |
1162 | { | 1162 | { |
1163 | unsigned long limit; | 1163 | phys_addr_t limit; |
1164 | 1164 | ||
1165 | DBG(" -> early_init_devtree(%p)\n", params); | 1165 | DBG(" -> early_init_devtree(%p)\n", params); |
1166 | 1166 | ||
@@ -1204,7 +1204,7 @@ void __init early_init_devtree(void *params) | |||
1204 | 1204 | ||
1205 | limit = memory_limit; | 1205 | limit = memory_limit; |
1206 | if (! limit) { | 1206 | if (! limit) { |
1207 | unsigned long memsize; | 1207 | phys_addr_t memsize; |
1208 | 1208 | ||
1209 | /* Ensure that total memory size is page-aligned, because | 1209 | /* Ensure that total memory size is page-aligned, because |
1210 | * otherwise mark_bootmem() gets upset. */ | 1210 | * otherwise mark_bootmem() gets upset. */ |
@@ -1218,7 +1218,7 @@ void __init early_init_devtree(void *params) | |||
1218 | lmb_analyze(); | 1218 | lmb_analyze(); |
1219 | lmb_dump_all(); | 1219 | lmb_dump_all(); |
1220 | 1220 | ||
1221 | DBG("Phys. mem: %lx\n", lmb_phys_mem_size()); | 1221 | DBG("Phys. mem: %llx\n", lmb_phys_mem_size()); |
1222 | 1222 | ||
1223 | /* We may need to relocate the flat tree, do it now. | 1223 | /* We may need to relocate the flat tree, do it now. |
1224 | * FIXME .. and the initrd too? */ | 1224 | * FIXME .. and the initrd too? */ |
diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c index f668fa9ba804..d0602a76bf7f 100644 --- a/arch/powerpc/mm/mem.c +++ b/arch/powerpc/mm/mem.c | |||
@@ -57,7 +57,7 @@ | |||
57 | 57 | ||
58 | int init_bootmem_done; | 58 | int init_bootmem_done; |
59 | int mem_init_done; | 59 | int mem_init_done; |
60 | unsigned long memory_limit; | 60 | phys_addr_t memory_limit; |
61 | 61 | ||
62 | #ifdef CONFIG_HIGHMEM | 62 | #ifdef CONFIG_HIGHMEM |
63 | pte_t *kmap_pte; | 63 | pte_t *kmap_pte; |