Skip to content

Commit

Permalink
powerpc: Allow mem=x cmdline to work with 4G+
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Becky Bruce authored and ozbenh committed May 15, 2009
1 parent 31207da commit 49a8496
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 8 deletions.
2 changes: 1 addition & 1 deletion arch/powerpc/include/asm/system.h
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,7 @@ extern struct task_struct *_switch(struct thread_struct *prev,
extern unsigned int rtas_data;
extern int mem_init_done; /* set on boot once kmalloc can be called */
extern int init_bootmem_done; /* set on !NUMA once bootmem is available */
extern unsigned long memory_limit;
extern phys_addr_t memory_limit;
extern unsigned long klimit;

extern void *alloc_maybe_bootmem(size_t size, gfp_t mask);
Expand Down
4 changes: 2 additions & 2 deletions arch/powerpc/kernel/machine_kexec.c
Original file line number Diff line number Diff line change
Expand Up @@ -125,8 +125,8 @@ void __init reserve_crashkernel(void)
/* Crash kernel trumps memory limit */
if (memory_limit && memory_limit <= crashk_res.end) {
memory_limit = crashk_res.end + 1;
printk("Adjusted memory limit for crashkernel, now 0x%lx\n",
memory_limit);
printk("Adjusted memory limit for crashkernel, now 0x%llx\n",
(unsigned long long)memory_limit);
}

printk(KERN_INFO "Reserving %ldMB of memory at %ldMB "
Expand Down
8 changes: 4 additions & 4 deletions arch/powerpc/kernel/prom.c
Original file line number Diff line number Diff line change
Expand Up @@ -426,7 +426,7 @@ static int __init early_parse_mem(char *p)
return 1;

memory_limit = PAGE_ALIGN(memparse(p, &p));
DBG("memory limit = 0x%lx\n", memory_limit);
DBG("memory limit = 0x%llx\n", (unsigned long long)memory_limit);

return 0;
}
Expand Down Expand Up @@ -1160,7 +1160,7 @@ static inline void __init phyp_dump_reserve_mem(void) {}

void __init early_init_devtree(void *params)
{
unsigned long limit;
phys_addr_t limit;

DBG(" -> early_init_devtree(%p)\n", params);

Expand Down Expand Up @@ -1204,7 +1204,7 @@ void __init early_init_devtree(void *params)

limit = memory_limit;
if (! limit) {
unsigned long memsize;
phys_addr_t memsize;

/* Ensure that total memory size is page-aligned, because
* otherwise mark_bootmem() gets upset. */
Expand All @@ -1218,7 +1218,7 @@ void __init early_init_devtree(void *params)
lmb_analyze();
lmb_dump_all();

DBG("Phys. mem: %lx\n", lmb_phys_mem_size());
DBG("Phys. mem: %llx\n", lmb_phys_mem_size());

/* We may need to relocate the flat tree, do it now.
* FIXME .. and the initrd too? */
Expand Down
2 changes: 1 addition & 1 deletion arch/powerpc/mm/mem.c
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@

int init_bootmem_done;
int mem_init_done;
unsigned long memory_limit;
phys_addr_t memory_limit;

#ifdef CONFIG_HIGHMEM
pte_t *kmap_pte;
Expand Down

0 comments on commit 49a8496

Please sign in to comment.