powerpc: Change memory_limit from phys_addr_t to unsigned long long

There are some device-tree nodes, whose values are of type phys_addr_t.
The phys_addr_t is variable sized based on the CONFIG_PHSY_T_64BIT.

Change these to a fixed unsigned long long for consistency.

This patch does the change only for memory_limit.

The following is a list of such variables which need the change:

 1) kernel_end, crashk_size - in arch/powerpc/kernel/machine_kexec.c

 2) (struct resource *)crashk_res.start - We could export a local static
    variable from machine_kexec.c.

Changing the above values might break the kexec-tools. So, I will
fix kexec-tools first to handle the different sized values and then change
 the above.

Suggested-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Suzuki K. Poulose <suzuki@in.ibm.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
Suzuki Poulose 2012-08-21 01:42:33 +00:00 committed by Benjamin Herrenschmidt
parent 0090e02b94
commit a84fcd4687
5 changed files with 6 additions and 7 deletions

View File

@ -9,7 +9,7 @@ extern void ppc_printk_progress(char *s, unsigned short hex);
extern unsigned int rtas_data; extern unsigned int rtas_data;
extern int mem_init_done; /* set on boot once kmalloc can be called */ extern int mem_init_done; /* set on boot once kmalloc can be called */
extern int init_bootmem_done; /* set once bootmem is available */ extern int init_bootmem_done; /* set once bootmem is available */
extern phys_addr_t memory_limit; extern unsigned long long memory_limit;
extern unsigned long klimit; extern unsigned long klimit;
extern void *zalloc_maybe_bootmem(size_t size, gfp_t mask); extern void *zalloc_maybe_bootmem(size_t size, gfp_t mask);

View File

@ -289,8 +289,7 @@ int __init fadump_reserve_mem(void)
else else
memory_limit = memblock_end_of_DRAM(); memory_limit = memblock_end_of_DRAM();
printk(KERN_INFO "Adjusted memory_limit for firmware-assisted" printk(KERN_INFO "Adjusted memory_limit for firmware-assisted"
" dump, now %#016llx\n", " dump, now %#016llx\n", memory_limit);
(unsigned long long)memory_limit);
} }
if (memory_limit) if (memory_limit)
memory_boundary = memory_limit; memory_boundary = memory_limit;

View File

@ -165,7 +165,7 @@ void __init reserve_crashkernel(void)
if (memory_limit && memory_limit <= crashk_res.end) { if (memory_limit && memory_limit <= crashk_res.end) {
memory_limit = crashk_res.end + 1; memory_limit = crashk_res.end + 1;
printk("Adjusted memory limit for crashkernel, now 0x%llx\n", printk("Adjusted memory limit for crashkernel, now 0x%llx\n",
(unsigned long long)memory_limit); memory_limit);
} }
printk(KERN_INFO "Reserving %ldMB of memory at %ldMB " printk(KERN_INFO "Reserving %ldMB of memory at %ldMB "

View File

@ -78,7 +78,7 @@ static int __init early_parse_mem(char *p)
return 1; return 1;
memory_limit = PAGE_ALIGN(memparse(p, &p)); memory_limit = PAGE_ALIGN(memparse(p, &p));
DBG("memory limit = 0x%llx\n", (unsigned long long)memory_limit); DBG("memory limit = 0x%llx\n", memory_limit);
return 0; return 0;
} }
@ -661,7 +661,7 @@ void __init early_init_devtree(void *params)
/* make sure we've parsed cmdline for mem= before this */ /* make sure we've parsed cmdline for mem= before this */
if (memory_limit) if (memory_limit)
first_memblock_size = min(first_memblock_size, memory_limit); first_memblock_size = min_t(u64, first_memblock_size, memory_limit);
setup_initial_memory_limit(memstart_addr, first_memblock_size); setup_initial_memory_limit(memstart_addr, first_memblock_size);
/* Reserve MEMBLOCK regions used by kernel, initrd, dt, etc... */ /* Reserve MEMBLOCK regions used by kernel, initrd, dt, etc... */
memblock_reserve(PHYSICAL_START, __pa(klimit) - PHYSICAL_START); memblock_reserve(PHYSICAL_START, __pa(klimit) - PHYSICAL_START);

View File

@ -62,7 +62,7 @@
int init_bootmem_done; int init_bootmem_done;
int mem_init_done; int mem_init_done;
phys_addr_t memory_limit; unsigned long long memory_limit;
#ifdef CONFIG_HIGHMEM #ifdef CONFIG_HIGHMEM
pte_t *kmap_pte; pte_t *kmap_pte;