On Fri, Nov 6, 2020 at 9:14 AM Catalin Marinas <catalin.marinas@xxxxxxx> wrote: > > On Mon, Oct 05, 2020 at 05:17:49PM -0700, Atish Patra wrote: > > diff --git a/arch/arm64/kernel/acpi_numa.c b/arch/arm64/kernel/acpi_numa.c > > index 7ff800045434..96502ff92af5 100644 > > --- a/arch/arm64/kernel/acpi_numa.c > > +++ b/arch/arm64/kernel/acpi_numa.c > > @@ -117,16 +117,3 @@ void __init acpi_numa_gicc_affinity_init(struct acpi_srat_gicc_affinity *pa) > > > > node_set(node, numa_nodes_parsed); > > } > > - > > -int __init arm64_acpi_numa_init(void) > > -{ > > - int ret; > > - > > - ret = acpi_numa_init(); > > - if (ret) { > > - pr_info("Failed to initialise from firmware\n"); > > - return ret; > > - } > > - > > - return srat_disabled() ? -EINVAL : 0; > > -} > > I think it's better if arm64_acpi_numa_init() and arm64_numa_init() > remained in the arm64 code. It's not really much code to be shared. > RISC-V will probably support ACPI one day. The idea is to not to do exercise again in future. Moreover, there will be arch_numa_init which will be used by RISC-V and there will be arm64_numa_init used by arm64. However, if you feel strongly about it, I am happy to move back those two functions to arm64. In case, we decide to go that route, can we define arm64_numa_init in mm/init.c ? Defining numa.c just for arm64_numa_init in arm64 may be an overkill. > > diff --git a/drivers/base/arch_numa.c b/drivers/base/arch_numa.c > > index 73f8b49d485c..74b4f2ddad70 100644 > > --- a/drivers/base/arch_numa.c > > +++ b/drivers/base/arch_numa.c > > @@ -13,7 +13,6 @@ > > #include <linux/module.h> > > #include <linux/of.h> > > > > -#include <asm/acpi.h> > > #include <asm/sections.h> > > > > struct pglist_data *node_data[MAX_NUMNODES] __read_mostly; > > @@ -444,16 +443,37 @@ static int __init dummy_numa_init(void) > > return 0; > > } > > > > +#ifdef CONFIG_ACPI_NUMA > > +static int __init arch_acpi_numa_init(void) > > +{ > > + int ret; > > + > > + ret = acpi_numa_init(); > > + if (ret) { > > + pr_info("Failed to initialise from firmware\n"); > > + return ret; > > + } > > + > > + return srat_disabled() ? -EINVAL : 0; > > +} > > +#else > > +static int __init arch_acpi_numa_init(void) > > +{ > > + return -EOPNOTSUPP; > > +} > > + > > +#endif > > + > > /** > > - * arm64_numa_init() - Initialize NUMA > > + * arch_numa_init() - Initialize NUMA > > * > > * Try each configured NUMA initialization method until one succeeds. The > > - * last fallback is dummy single node config encomapssing whole memory. > > + * last fallback is dummy single node config encompassing whole memory. > > */ > > -void __init arm64_numa_init(void) > > +void __init arch_numa_init(void) > > { > > if (!numa_off) { > > - if (!acpi_disabled && !numa_init(arm64_acpi_numa_init)) > > + if (!acpi_disabled && !numa_init(arch_acpi_numa_init)) > > return; > > if (acpi_disabled && !numa_init(of_numa_init)) > > return; > > Does riscv even have an acpi_disabled variable? > It is defined in "include/linux/acpi.h" which is included in arch_numa.c > -- > Catalin > > _______________________________________________ > linux-riscv mailing list > linux-riscv@xxxxxxxxxxxxxxxxxxx > http://lists.infradead.org/mailman/listinfo/linux-riscv -- Regards, Atish