diff mbox series

[3/3] ARM64: ACPI: Move the NUMA code to drivers/acpi/arm64/

Message ID 20240808131522.1032431-4-guohanjun@huawei.com (mailing list archive)
State Handled Elsewhere, archived
Headers show
Series cleanups for ARM64 ACPI | expand

Commit Message

Hanjun Guo Aug. 8, 2024, 1:15 p.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 and cpu, move the ACPI NUMA code to drivers/acpi/arm64/.

Since arm64 selects ACPI_NUMA by default, so just move the function
definitions under CONFIG_ARM64 in linux/acpi.h.

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

Comments

kernel test robot Aug. 8, 2024, 11:49 p.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-rc2 next-20240808]
[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/20240808-212154
base:   https://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-next/core
patch link:    https://lore.kernel.org/r/20240808131522.1032431-4-guohanjun%40huawei.com
patch subject: [PATCH 3/3] ARM64: ACPI: Move the NUMA code to drivers/acpi/arm64/
config: riscv-defconfig (https://download.01.org/0day-ci/archive/20240809/202408090735.Oa78ciK8-lkp@intel.com/config)
compiler: clang version 20.0.0git (https://github.com/llvm/llvm-project 4527fba9ad6bc682eceda603150bfaec65ec6916)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240809/202408090735.Oa78ciK8-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/202408090735.Oa78ciK8-lkp@intel.com/

All errors (new ones prefixed by >>):

   In file included from drivers/nvme/host/pci.c:7:
>> include/linux/acpi.h:260:19: error: redefinition of 'acpi_numa_get_nid'
     260 | static inline int acpi_numa_get_nid(unsigned int cpu) { return NUMA_NO_NODE; }
         |                   ^
   arch/riscv/include/asm/acpi.h:68:19: note: previous definition is here
      68 | static inline int acpi_numa_get_nid(unsigned int cpu) { return NUMA_NO_NODE; }
         |                   ^
   In file included from drivers/nvme/host/pci.c:9:
   In file included from include/linux/blkdev.h:9:
   In file included from include/linux/blk_types.h:10:
   In file included from include/linux/bvec.h:10:
   In file included from include/linux/highmem.h:8:
   In file included from include/linux/cacheflush.h:5:
   In file included from arch/riscv/include/asm/cacheflush.h:9:
   In file included from include/linux/mm.h:2253:
   include/linux/vmstat.h:514:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
     514 |         return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
         |                               ~~~~~~~~~~~ ^ ~~~
   drivers/nvme/host/pci.c:2982:41: warning: shift count >= width of type [-Wshift-count-overflow]
    2982 |                 dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64));
         |                                                       ^~~~~~~~~~~~~~~~
   include/linux/dma-mapping.h:77:54: note: expanded from macro 'DMA_BIT_MASK'
      77 | #define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1))
         |                                                      ^ ~~~
   2 warnings and 1 error generated.


vim +/acpi_numa_get_nid +260 include/linux/acpi.h

   254	
   255	#ifdef CONFIG_ARM64
   256	int acpi_numa_get_nid(unsigned int cpu);
   257	void acpi_map_cpus_to_nodes(void);
   258	void acpi_numa_gicc_affinity_init(struct acpi_srat_gicc_affinity *pa);
   259	#else
 > 260	static inline int acpi_numa_get_nid(unsigned int cpu) { return NUMA_NO_NODE; }
   261	static inline void acpi_map_cpus_to_nodes(void) { }
   262	static inline void
   263	acpi_numa_gicc_affinity_init(struct acpi_srat_gicc_affinity *pa) { }
   264	#endif
   265
Sudeep Holla Aug. 9, 2024, 7:21 a.m. UTC | #2
On Thu, Aug 08, 2024 at 09:15:22PM +0800, Hanjun Guo wrote:
> 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 and cpu, move the ACPI NUMA code to drivers/acpi/arm64/.
> 
> Since arm64 selects ACPI_NUMA by default, so just move the function
> definitions under CONFIG_ARM64 in linux/acpi.h.

I was about to ask to take a look at riscv implementation to avoid any
issues with this move, kbuild has already reported a build failure.

--
Regards,
Sudeep
Hanjun Guo Aug. 9, 2024, 10:45 a.m. UTC | #3
On 2024/8/9 15:21, Sudeep Holla wrote:
> On Thu, Aug 08, 2024 at 09:15:22PM +0800, Hanjun Guo wrote:
>> 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 and cpu, move the ACPI NUMA code to drivers/acpi/arm64/.
>>
>> Since arm64 selects ACPI_NUMA by default, so just move the function
>> definitions under CONFIG_ARM64 in linux/acpi.h.
> 
> I was about to ask to take a look at riscv implementation to avoid any
> issues with this move, kbuild has already reported a build failure.

sharp-sighted :)

Will take care of it next version.

Thanks
Hanjun
diff mbox series

Patch

diff --git a/arch/arm64/include/asm/acpi.h b/arch/arm64/include/asm/acpi.h
index 5e25110ad1b7..572355783971 100644
--- a/arch/arm64/include/asm/acpi.h
+++ b/arch/arm64/include/asm/acpi.h
@@ -174,14 +174,6 @@  static inline pgprot_t arch_apei_get_mem_attribute(phys_addr_t addr)
 }
 #endif /* CONFIG_ACPI_APEI */
 
-#ifdef CONFIG_ACPI_NUMA
-int acpi_numa_get_nid(unsigned int cpu);
-void acpi_map_cpus_to_nodes(void);
-#else
-static inline int acpi_numa_get_nid(unsigned int cpu) { return NUMA_NO_NODE; }
-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..7de4e9dac0c7 100644
--- a/include/linux/acpi.h
+++ b/include/linux/acpi.h
@@ -253,8 +253,12 @@  static inline void acpi_arch_dma_setup(struct device *dev) { }
 #endif
 
 #ifdef CONFIG_ARM64
+int acpi_numa_get_nid(unsigned int cpu);
+void acpi_map_cpus_to_nodes(void);
 void acpi_numa_gicc_affinity_init(struct acpi_srat_gicc_affinity *pa);
 #else
+static inline int acpi_numa_get_nid(unsigned int cpu) { return NUMA_NO_NODE; }
+static inline void acpi_map_cpus_to_nodes(void) { }
 static inline void
 acpi_numa_gicc_affinity_init(struct acpi_srat_gicc_affinity *pa) { }
 #endif