[POWERPC] Fix parse_drconf_memory() for 64-bit start addresses

Some new machines use the "ibm,dynamic-reconfiguration-memory" property
to provide memory layout information, rather than via memory nodes.

There is a bug in the code to parse this property for start addresses
over 4GB; we store the start address in an unsigned int, which means
we throw away the high bits and add apparently duplicate regions.
This results in a BUG() in free_bootmem_core(). This fixes it by
using an unsigned long instead.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>

authored by Michael Ellerman and committed by Paul Mackerras b9c3fdb0 17aa3a82

+2 -2
+2 -2
arch/powerpc/mm/numa.c
··· 307 307 const unsigned int *lm, *dm, *aa; 308 308 unsigned int ls, ld, la; 309 309 unsigned int n, aam, aalen; 310 - unsigned long lmb_size, size; 310 + unsigned long lmb_size, size, start; 311 311 int nid, default_nid = 0; 312 - unsigned int start, ai, flags; 312 + unsigned int ai, flags; 313 313 314 314 lm = of_get_property(memory, "ibm,lmb-size", &ls); 315 315 dm = of_get_property(memory, "ibm,dynamic-memory", &ld);