Commit fbf2f134 authored by Aneesh Kumar K.V's avatar Aneesh Kumar K.V Committed by Michael Ellerman
Browse files

powerpc/lmb-size: Use addr #size-cells value when fetching lmb-size

parent 950805f4
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -498,7 +498,7 @@ static int __init probe_memory_block_size(unsigned long node, const char *uname,
					  depth, void *data)
{
	unsigned long *mem_block_size = (unsigned long *)data;
	const __be64 *prop;
	const __be32 *prop;
	int len;

	if (depth != 1)
@@ -508,13 +508,14 @@ static int __init probe_memory_block_size(unsigned long node, const char *uname,
		return 0;

	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
		 */
		*mem_block_size = MIN_MEMORY_BLOCK_SIZE;
	else
		*mem_block_size = be64_to_cpup(prop);
		*mem_block_size = of_read_number(prop, dt_root_size_cells);
	return 1;
}

+9 −4
Original line number Diff line number Diff line
@@ -30,12 +30,17 @@ unsigned long pseries_memory_block_size(void)

	np = of_find_node_by_path("/ibm,dynamic-reconfiguration-memory");
	if (np) {
		const __be64 *size;
		int len;
		int size_cells;
		const __be32 *prop;

		size_cells = of_n_size_cells(np);

		size = of_get_property(np, "ibm,lmb-size", NULL);
		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);

	} else  if (machine_is(pseries)) {
		/* This fallback really only applies to pseries */
		unsigned int memzero_size = 0;