diff mbox series

[v2,4/4] ARM64: ACPI: Move the NUMA code to drivers/acpi/arm64/

Message ID 20240811042303.3498761-5-guohanjun@huawei.com
State New
Headers show
Series Cleanups for ARM64 ACPI | expand

Commit Message

Hanjun Guo Aug. 11, 2024, 4:23 a.m. UTC
The ARM64 ACPI NUMA code can be moved out of arm64 arch code
as it just related to ACPI NUMA table parsing, mappings for
ACPI numa node and cpu, so move the ACPI NUMA code to
drivers/acpi/arm64/.

Since arm64 selects ACPI_NUMA by default if ACPI=y, just move the
function definitions under CONFIG_ARM64 in linux/acpi.h, as the
caller of acpi_map_cpus_to_nodes() is only with ACPI selected, so
no inline function is needed, this will solve the conflict with
riscv implementation as well.

Signed-off-by: Hanjun Guo <guohanjun@huawei.com>
---
 arch/arm64/include/asm/acpi.h                         | 6 ------
 arch/arm64/kernel/Makefile                            | 1 -
 drivers/acpi/arm64/Makefile                           | 1 +
 {arch/arm64/kernel => drivers/acpi/arm64}/acpi_numa.c | 0
 include/linux/acpi.h                                  | 1 +
 5 files changed, 2 insertions(+), 7 deletions(-)
 rename {arch/arm64/kernel => drivers/acpi/arm64}/acpi_numa.c (100%)

Comments

kernel test robot Aug. 12, 2024, 3:02 a.m. UTC | #1
Hi Hanjun,

kernel test robot noticed the following build errors:

[auto build test ERROR on arm64/for-next/core]
[also build test ERROR on rafael-pm/linux-next rafael-pm/bleeding-edge linus/master v6.11-rc3 next-20240809]
[cannot apply to arm-perf/for-next/perf]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Hanjun-Guo/ARM64-ACPI-Remove-the-leftover-acpi_init_cpus/20240811-122442
base:   https://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-next/core
patch link:    https://lore.kernel.org/r/20240811042303.3498761-5-guohanjun%40huawei.com
patch subject: [PATCH v2 4/4] ARM64: ACPI: Move the NUMA code to drivers/acpi/arm64/
config: arm64-randconfig-001-20240812 (https://download.01.org/0day-ci/archive/20240812/202408121026.c3mDLUsP-lkp@intel.com/config)
compiler: aarch64-linux-gcc (GCC) 14.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240812/202408121026.c3mDLUsP-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202408121026.c3mDLUsP-lkp@intel.com/

All errors (new ones prefixed by >>):

   aarch64-linux-ld: Unexpected GOT/PLT entries detected!
   aarch64-linux-ld: Unexpected run-time procedure linkages detected!
   aarch64-linux-ld: arch/arm64/kernel/smp.o: in function `smp_init_cpus':
>> arch/arm64/kernel/smp.c:669:(.init.text+0x424): undefined reference to `acpi_map_cpus_to_nodes'


vim +669 arch/arm64/kernel/smp.c

e189624916961c Lorenzo Pieralisi 2018-06-25  650  
e189624916961c Lorenzo Pieralisi 2018-06-25  651  static void __init acpi_parse_and_init_cpus(void)
e189624916961c Lorenzo Pieralisi 2018-06-25  652  {
e189624916961c Lorenzo Pieralisi 2018-06-25  653  	/*
e189624916961c Lorenzo Pieralisi 2018-06-25  654  	 * do a walk of MADT to determine how many CPUs
e189624916961c Lorenzo Pieralisi 2018-06-25  655  	 * we have including disabled CPUs, and get information
e189624916961c Lorenzo Pieralisi 2018-06-25  656  	 * we need for SMP init.
e189624916961c Lorenzo Pieralisi 2018-06-25  657  	 */
e189624916961c Lorenzo Pieralisi 2018-06-25  658  	acpi_table_parse_madt(ACPI_MADT_TYPE_GENERIC_INTERRUPT,
e189624916961c Lorenzo Pieralisi 2018-06-25  659  				      acpi_parse_gic_cpu_interface, 0);
e189624916961c Lorenzo Pieralisi 2018-06-25  660  
e189624916961c Lorenzo Pieralisi 2018-06-25  661  	/*
e189624916961c Lorenzo Pieralisi 2018-06-25  662  	 * In ACPI, SMP and CPU NUMA information is provided in separate
e189624916961c Lorenzo Pieralisi 2018-06-25  663  	 * static tables, namely the MADT and the SRAT.
e189624916961c Lorenzo Pieralisi 2018-06-25  664  	 *
e189624916961c Lorenzo Pieralisi 2018-06-25  665  	 * Thus, it is simpler to first create the cpu logical map through
e189624916961c Lorenzo Pieralisi 2018-06-25  666  	 * an MADT walk and then map the logical cpus to their node ids
e189624916961c Lorenzo Pieralisi 2018-06-25  667  	 * as separate steps.
e189624916961c Lorenzo Pieralisi 2018-06-25  668  	 */
e189624916961c Lorenzo Pieralisi 2018-06-25 @669  	acpi_map_cpus_to_nodes();
e189624916961c Lorenzo Pieralisi 2018-06-25  670  }
0f0783365cbb7e Lorenzo Pieralisi 2015-05-13  671  #else
e189624916961c Lorenzo Pieralisi 2018-06-25  672  #define acpi_parse_and_init_cpus(...)	do { } while (0)
0f0783365cbb7e Lorenzo Pieralisi 2015-05-13  673  #endif
0f0783365cbb7e Lorenzo Pieralisi 2015-05-13  674
Hanjun Guo Aug. 12, 2024, 3:46 a.m. UTC | #2
On 2024/8/12 11:02, kernel test robot wrote:
> Hi Hanjun,
> 
> kernel test robot noticed the following build errors:
> 
> [auto build test ERROR on arm64/for-next/core]
> [also build test ERROR on rafael-pm/linux-next rafael-pm/bleeding-edge linus/master v6.11-rc3 next-20240809]
> [cannot apply to arm-perf/for-next/perf]
> [If your patch is applied to the wrong git tree, kindly drop us a note.
> And when submitting patch, we suggest to use '--base' as documented in
> https://git-scm.com/docs/git-format-patch#_base_tree_information]
> 
> url:    https://github.com/intel-lab-lkp/linux/commits/Hanjun-Guo/ARM64-ACPI-Remove-the-leftover-acpi_init_cpus/20240811-122442
> base:   https://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-next/core
> patch link:    https://lore.kernel.org/r/20240811042303.3498761-5-guohanjun%40huawei.com
> patch subject: [PATCH v2 4/4] ARM64: ACPI: Move the NUMA code to drivers/acpi/arm64/
> config: arm64-randconfig-001-20240812 (https://download.01.org/0day-ci/archive/20240812/202408121026.c3mDLUsP-lkp@intel.com/config)
> compiler: aarch64-linux-gcc (GCC) 14.1.0
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240812/202408121026.c3mDLUsP-lkp@intel.com/reproduce)
> 
> If you fix the issue in a separate patch/commit (i.e. not just a new version of
> the same patch/commit), kindly add following tags
> | Reported-by: kernel test robot <lkp@intel.com>
> | Closes: https://lore.kernel.org/oe-kbuild-all/202408121026.c3mDLUsP-lkp@intel.com/
> 
> All errors (new ones prefixed by >>):
> 
>     aarch64-linux-ld: Unexpected GOT/PLT entries detected!
>     aarch64-linux-ld: Unexpected run-time procedure linkages detected!
>     aarch64-linux-ld: arch/arm64/kernel/smp.o: in function `smp_init_cpus':
>>> arch/arm64/kernel/smp.c:669:(.init.text+0x424): undefined reference to `acpi_map_cpus_to_nodes'

Good catch, I missed the random config which CONFIG_NUMA is not set.

Thanks
Hanjun
diff mbox series

Patch

diff --git a/arch/arm64/include/asm/acpi.h b/arch/arm64/include/asm/acpi.h
index 40a501e1f26b..572355783971 100644
--- a/arch/arm64/include/asm/acpi.h
+++ b/arch/arm64/include/asm/acpi.h
@@ -174,12 +174,6 @@  static inline pgprot_t arch_apei_get_mem_attribute(phys_addr_t addr)
 }
 #endif /* CONFIG_ACPI_APEI */
 
-#ifdef CONFIG_ACPI_NUMA
-void acpi_map_cpus_to_nodes(void);
-#else
-static inline void acpi_map_cpus_to_nodes(void) { }
-#endif /* CONFIG_ACPI_NUMA */
-
 #define ACPI_TABLE_UPGRADE_MAX_PHYS MEMBLOCK_ALLOC_ACCESSIBLE
 
 #endif /*_ASM_ACPI_H*/
diff --git a/arch/arm64/kernel/Makefile b/arch/arm64/kernel/Makefile
index 2b112f3b7510..c7d09c6348a4 100644
--- a/arch/arm64/kernel/Makefile
+++ b/arch/arm64/kernel/Makefile
@@ -52,7 +52,6 @@  obj-$(CONFIG_EFI)			+= efi.o efi-rt-wrapper.o
 obj-$(CONFIG_PCI)			+= pci.o
 obj-$(CONFIG_ARMV8_DEPRECATED)		+= armv8_deprecated.o
 obj-$(CONFIG_ACPI)			+= acpi.o
-obj-$(CONFIG_ACPI_NUMA)			+= acpi_numa.o
 obj-$(CONFIG_ARM64_ACPI_PARKING_PROTOCOL)	+= acpi_parking_protocol.o
 obj-$(CONFIG_PARAVIRT)			+= paravirt.o
 obj-$(CONFIG_RANDOMIZE_BASE)		+= kaslr.o
diff --git a/drivers/acpi/arm64/Makefile b/drivers/acpi/arm64/Makefile
index 05ecde9eaabe..9aeed2e4ebde 100644
--- a/drivers/acpi/arm64/Makefile
+++ b/drivers/acpi/arm64/Makefile
@@ -4,6 +4,7 @@  obj-$(CONFIG_ACPI_APMT) 	+= apmt.o
 obj-$(CONFIG_ACPI_FFH)		+= ffh.o
 obj-$(CONFIG_ACPI_GTDT) 	+= gtdt.o
 obj-$(CONFIG_ACPI_IORT) 	+= iort.o
+obj-$(CONFIG_ACPI_NUMA)		+= acpi_numa.o
 obj-$(CONFIG_ACPI_PROCESSOR_IDLE) += cpuidle.o
 obj-$(CONFIG_ARM_AMBA)		+= amba.o
 obj-y				+= dma.o init.o
diff --git a/arch/arm64/kernel/acpi_numa.c b/drivers/acpi/arm64/acpi_numa.c
similarity index 100%
rename from arch/arm64/kernel/acpi_numa.c
rename to drivers/acpi/arm64/acpi_numa.c
diff --git a/include/linux/acpi.h b/include/linux/acpi.h
index 0687a442fec7..09e0c2ad8c43 100644
--- a/include/linux/acpi.h
+++ b/include/linux/acpi.h
@@ -253,6 +253,7 @@  static inline void acpi_arch_dma_setup(struct device *dev) { }
 #endif
 
 #ifdef CONFIG_ARM64
+void acpi_map_cpus_to_nodes(void);
 void acpi_numa_gicc_affinity_init(struct acpi_srat_gicc_affinity *pa);
 #else
 static inline void