Re: [PATCH v4 2/5] arm64, numa: Change the numa init functions name to be generic
From: Atish Patra <hidden>
Date: 2020-11-06 17:33:29
Also in:
linux-arch, linux-riscv, lkml
On Fri, Nov 6, 2020 at 9:14 AM Catalin Marinas [off-list ref] wrote:
On Mon, Oct 05, 2020 at 05:17:49PM -0700, Atish Patra wrote:quoted
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.
quoted
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@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-riscv
-- Regards, Atish _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel