On 08/30/18 12:05, Rob Herring wrote: > Now that we initialize dt_root_addr_cells and dt_root_size_cells earlier, > use them and simplify of_fdt_limit_memory. > > Cc: Frank Rowand <frowand.list@xxxxxxxxx> > Signed-off-by: Rob Herring <robh@xxxxxxxxxx> > --- > drivers/of/fdt.c | 23 +---------------------- > 1 file changed, 1 insertion(+), 22 deletions(-) > > diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c > index 49abe18f1bde..fef4b2c8a171 100644 > --- a/drivers/of/fdt.c > +++ b/drivers/of/fdt.c As kbuild test robot noted, of_fdt_limit_memory() will access __initdata dt_root_addr_cells and __initdata dt_root_size_cells. A possible (untested) fix would be: - void of_fdt_limit_memory(int limit) - { + void __init of_fdt_limit_memory(int limit) + { > @@ -44,28 +44,7 @@ void of_fdt_limit_memory(int limit) > int memory; > int len; > const void *val; > - int nr_address_cells = OF_ROOT_NODE_ADDR_CELLS_DEFAULT; > - int nr_size_cells = OF_ROOT_NODE_SIZE_CELLS_DEFAULT; > - const __be32 *addr_prop; > - const __be32 *size_prop; > - int root_offset; > - int cell_size; > - > - root_offset = fdt_path_offset(initial_boot_params, "/"); > - if (root_offset < 0) > - return; > - > - addr_prop = fdt_getprop(initial_boot_params, root_offset, > - "#address-cells", NULL); > - if (addr_prop) > - nr_address_cells = fdt32_to_cpu(*addr_prop); > - > - size_prop = fdt_getprop(initial_boot_params, root_offset, > - "#size-cells", NULL); > - if (size_prop) > - nr_size_cells = fdt32_to_cpu(*size_prop); > - > - cell_size = sizeof(uint32_t)*(nr_address_cells + nr_size_cells); > + int cell_size = sizeof(uint32_t)*(dt_root_addr_cells + dt_root_size_cells); > > memory = fdt_path_offset(initial_boot_params, "/memory"); > if (memory > 0) { >