powerpc/lmb-size: Use addr #size-cells value when fetching lmb-size
Make it consistent with other usages. Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/20201007114836.282468-5-aneesh.kumar@linux.ibm.com
This commit is contained in:
parent
950805f4d9
commit
fbf2f134c8
@ -498,7 +498,7 @@ static int __init probe_memory_block_size(unsigned long node, const char *uname,
|
|||||||
depth, void *data)
|
depth, void *data)
|
||||||
{
|
{
|
||||||
unsigned long *mem_block_size = (unsigned long *)data;
|
unsigned long *mem_block_size = (unsigned long *)data;
|
||||||
const __be64 *prop;
|
const __be32 *prop;
|
||||||
int len;
|
int len;
|
||||||
|
|
||||||
if (depth != 1)
|
if (depth != 1)
|
||||||
@ -508,13 +508,14 @@ static int __init probe_memory_block_size(unsigned long node, const char *uname,
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
prop = of_get_flat_dt_prop(node, "ibm,lmb-size", &len);
|
prop = of_get_flat_dt_prop(node, "ibm,lmb-size", &len);
|
||||||
if (!prop || len < sizeof(__be64))
|
|
||||||
|
if (!prop || len < dt_root_size_cells * sizeof(__be32))
|
||||||
/*
|
/*
|
||||||
* Nothing in the device tree
|
* Nothing in the device tree
|
||||||
*/
|
*/
|
||||||
*mem_block_size = MIN_MEMORY_BLOCK_SIZE;
|
*mem_block_size = MIN_MEMORY_BLOCK_SIZE;
|
||||||
else
|
else
|
||||||
*mem_block_size = be64_to_cpup(prop);
|
*mem_block_size = of_read_number(prop, dt_root_size_cells);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -30,12 +30,17 @@ unsigned long pseries_memory_block_size(void)
|
|||||||
|
|
||||||
np = of_find_node_by_path("/ibm,dynamic-reconfiguration-memory");
|
np = of_find_node_by_path("/ibm,dynamic-reconfiguration-memory");
|
||||||
if (np) {
|
if (np) {
|
||||||
const __be64 *size;
|
int len;
|
||||||
|
int size_cells;
|
||||||
|
const __be32 *prop;
|
||||||
|
|
||||||
size = of_get_property(np, "ibm,lmb-size", NULL);
|
size_cells = of_n_size_cells(np);
|
||||||
if (size)
|
|
||||||
memblock_size = be64_to_cpup(size);
|
prop = of_get_property(np, "ibm,lmb-size", &len);
|
||||||
|
if (prop && len >= size_cells * sizeof(__be32))
|
||||||
|
memblock_size = of_read_number(prop, size_cells);
|
||||||
of_node_put(np);
|
of_node_put(np);
|
||||||
|
|
||||||
} else if (machine_is(pseries)) {
|
} else if (machine_is(pseries)) {
|
||||||
/* This fallback really only applies to pseries */
|
/* This fallback really only applies to pseries */
|
||||||
unsigned int memzero_size = 0;
|
unsigned int memzero_size = 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user