Message ID | 20200806123604.248361-1-aneesh.kumar@linux.ibm.com (mailing list archive) |
---|---|
State | RFC |
Headers | show |
Series | [RFC,1/3] powerpc/mem: Store the dt_root_size/addr cell values for later usage | expand |
Context | Check | Description |
---|---|---|
snowpatch_ozlabs/apply_patch | success | Successfully applied on branch powerpc/merge (3cd2184115b85cc8242fec3d42529cd112962984) |
snowpatch_ozlabs/checkpatch | success | total: 0 errors, 0 warnings, 0 checks, 32 lines checked |
snowpatch_ozlabs/needsstable | success | Patch has no Fixes tags |
diff --git a/arch/powerpc/include/asm/drmem.h b/arch/powerpc/include/asm/drmem.h index 07c158c5f939..1f0eaf432755 100644 --- a/arch/powerpc/include/asm/drmem.h +++ b/arch/powerpc/include/asm/drmem.h @@ -123,4 +123,6 @@ static inline void lmb_clear_nid(struct drmem_lmb *lmb) } #endif +extern int mem_addr_cells, mem_size_cells; + #endif /* _ASM_POWERPC_LMB_H */ diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c index d8a2fb87ba0c..9a1701e85747 100644 --- a/arch/powerpc/kernel/prom.c +++ b/arch/powerpc/kernel/prom.c @@ -73,6 +73,7 @@ u64 ppc64_rma_size; #endif static phys_addr_t first_memblock_size; static int __initdata boot_cpu_count; +int mem_addr_cells, mem_size_cells; static int __init early_parse_mem(char *p) { @@ -536,6 +537,12 @@ static int __init early_init_dt_scan_memory_ppc(unsigned long node, const char *uname, int depth, void *data) { + /* + * Make a copy from __initdata variable + */ + mem_addr_cells = dt_root_addr_cells; + mem_size_cells = dt_root_size_cells; + #ifdef CONFIG_PPC_PSERIES if (depth == 1 && strcmp(uname, "ibm,dynamic-reconfiguration-memory") == 0) { diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c index 058fee9a0835..77d41d9775d2 100644 --- a/arch/powerpc/mm/numa.c +++ b/arch/powerpc/mm/numa.c @@ -368,6 +368,7 @@ static void __init get_n_mem_cells(int *n_addr_cells, int *n_size_cells) of_node_put(memory); } +/* dt_mem_next_cell is __init */ static unsigned long read_n_cells(int n, const __be32 **buf) { unsigned long result = 0;
dt_root_addr_cells and dt_root_size_cells are __initdata variables. So make a copy of the same which can be used post init. Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com> --- arch/powerpc/include/asm/drmem.h | 2 ++ arch/powerpc/kernel/prom.c | 7 +++++++ arch/powerpc/mm/numa.c | 1 + 3 files changed, 10 insertions(+)