aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorBecky Bruce <beckyb@kernel.crashing.org>2009-05-08 08:19:27 -0400
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2009-05-15 02:43:41 -0400
commit49a849652513235a244dfbf5e58c54f796bd1148 (patch)
tree809fe33bad6255fab153fb5a7f03170150ab88c7 /arch
parent31207dab7d2e63795eb15823947bd2f7025b08e2 (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.h2
-rw-r--r--arch/powerpc/kernel/machine_kexec.c4
-rw-r--r--arch/powerpc/kernel/prom.c8
-rw-r--r--arch/powerpc/mm/mem.c2
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,
212extern unsigned int rtas_data; 212extern unsigned int rtas_data;
213extern int mem_init_done; /* set on boot once kmalloc can be called */ 213extern int mem_init_done; /* set on boot once kmalloc can be called */
214extern int init_bootmem_done; /* set on !NUMA once bootmem is available */ 214extern int init_bootmem_done; /* set on !NUMA once bootmem is available */
215extern unsigned long memory_limit; 215extern phys_addr_t memory_limit;
216extern unsigned long klimit; 216extern unsigned long klimit;
217 217
218extern void *alloc_maybe_bootmem(size_t size, gfp_t mask); 218extern 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
1161void __init early_init_devtree(void *params) 1161void __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
58int init_bootmem_done; 58int init_bootmem_done;
59int mem_init_done; 59int mem_init_done;
60unsigned long memory_limit; 60phys_addr_t memory_limit;
61 61
62#ifdef CONFIG_HIGHMEM 62#ifdef CONFIG_HIGHMEM
63pte_t *kmap_pte; 63pte_t *kmap_pte;