[modules:ppavlu-module-include 36/37] arch/arm64/include/asm/module.h:48:16: error: implicit declaration of function 'cpus_have_final_cap'

kernel test robot <[email protected]>
Newsgroups dev.linux.lists.oe-kbuild
Message-ID <[email protected]>
:::::: 
:::::: Manual check reason: "low confidence bisect report"
:::::: 

BCC: [email protected]
CC: [email protected]
CC: Luis Chamberlain <[email protected]>
CC: Petr Pavlu <[email protected]>
CC: Sami Tolvanen <[email protected]>
CC: Daniel Gomez <[email protected]>
CC: [email protected]
TO: Petr Pavlu <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/modules/linux.git ppavlu-module-include
head:   fcbfd3cbe0a054838436812cc0b664f71ba1d0a4
commit: acb4d9bafad10e9712a74d71304a4f3a404eb4ec [36/37] WIP: module: Clean up includes in linux/module.h
:::::: branch date: 2 hours ago
:::::: commit date: 2 hours ago
config: arm64-allnoconfig-bpf (https://download.01.org/0day-ci/archive/20260819/[email protected]/config)
compiler: aarch64-linux-gnu-gcc (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260819/[email protected]/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 <[email protected]>
| Closes: https://lore.kernel.org/r/[email protected]/

All errors (new ones prefixed by >>):

   In file included from include/linux/module.h:28,
                    from ../../../drivers/nvdimm/namespace_devs.c:6:
   arch/arm64/include/asm/module.h: In function 'is_forbidden_offset_for_adrp':
>> arch/arm64/include/asm/module.h:48:16: error: implicit declaration of function 'cpus_have_final_cap' [-Wimplicit-function-declaration]
      48 |         return cpus_have_final_cap(ARM64_WORKAROUND_843419) &&
         |                ^~~~~~~~~~~~~~~~~~~
   arch/arm64/include/asm/module.h: In function 'find_section':
>> arch/arm64/include/asm/module.h:62:21: error: implicit declaration of function 'strcmp' [-Wimplicit-function-declaration]
      62 |                 if (strcmp(name, secstrs + s->sh_name) == 0)
         |                     ^~~~~~
   arch/arm64/include/asm/module.h:9:1: note: include '<string.h>' or provide a declaration of 'strcmp'
       8 | #include <asm-generic/module.h>
     +++ |+#include <string.h>
       9 | 
   In file included from arch/arm64/include/asm/processor.h:40,
                    from include/linux/sched.h:13,
                    from include/linux/ratelimit.h:6,
                    from include/linux/dev_printk.h:16,
                    from include/linux/device.h:15,
                    from ../../../drivers/nvdimm/namespace_devs.c:7:
   arch/arm64/include/asm/cpufeature.h: At top level:
>> arch/arm64/include/asm/cpufeature.h:519:29: error: conflicting types for 'cpus_have_final_cap'; have 'bool(int)' {aka '_Bool(int)'}
     519 | static __always_inline bool cpus_have_final_cap(int num)
         |                             ^~~~~~~~~~~~~~~~~~~
   arch/arm64/include/asm/module.h:48:16: note: previous implicit declaration of 'cpus_have_final_cap' with type 'int()'
      48 |         return cpus_have_final_cap(ARM64_WORKAROUND_843419) &&
         |                ^~~~~~~~~~~~~~~~~~~
--
   In file included from include/linux/module.h:28,
                    from libnvdimm_test.c:4:
   arch/arm64/include/asm/module.h: In function 'is_forbidden_offset_for_adrp':
>> arch/arm64/include/asm/module.h:48:16: error: implicit declaration of function 'cpus_have_final_cap' [-Wimplicit-function-declaration]
      48 |         return cpus_have_final_cap(ARM64_WORKAROUND_843419) &&
         |                ^~~~~~~~~~~~~~~~~~~
   arch/arm64/include/asm/module.h: In function 'find_section':
>> arch/arm64/include/asm/module.h:62:21: error: implicit declaration of function 'strcmp' [-Wimplicit-function-declaration]
      62 |                 if (strcmp(name, secstrs + s->sh_name) == 0)
         |                     ^~~~~~
   arch/arm64/include/asm/module.h:9:1: note: include '<string.h>' or provide a declaration of 'strcmp'
       8 | #include <asm-generic/module.h>
     +++ |+#include <string.h>
       9 | 


vim +/cpus_have_final_cap +48 arch/arm64/include/asm/module.h

7e8b9c1d2e2f5f Ard Biesheuvel 2017-11-20  45  
bdb85cd1d20669 Ard Biesheuvel 2018-11-22  46  static inline bool is_forbidden_offset_for_adrp(void *place)
7e8b9c1d2e2f5f Ard Biesheuvel 2017-11-20  47  {
0a285dfe875d52 Mark Rutland   2023-10-16 @48  	return cpus_have_final_cap(ARM64_WORKAROUND_843419) &&
bdb85cd1d20669 Ard Biesheuvel 2018-11-22  49  	       ((u64)place & 0xfff) >= 0xff8;
7e8b9c1d2e2f5f Ard Biesheuvel 2017-11-20  50  }
7e8b9c1d2e2f5f Ard Biesheuvel 2017-11-20  51  
bdb85cd1d20669 Ard Biesheuvel 2018-11-22  52  struct plt_entry get_plt_entry(u64 dst, void *pc);
7e8b9c1d2e2f5f Ard Biesheuvel 2017-11-20  53  
b3adc3844e1ded Joey Gouly     2022-08-30  54  static inline const Elf_Shdr *find_section(const Elf_Ehdr *hdr,
b3adc3844e1ded Joey Gouly     2022-08-30  55  				    const Elf_Shdr *sechdrs,
b3adc3844e1ded Joey Gouly     2022-08-30  56  				    const char *name)
5a3ae7b314a225 Ard Biesheuvel 2019-04-07  57  {
b3adc3844e1ded Joey Gouly     2022-08-30  58  	const Elf_Shdr *s, *se;
b3adc3844e1ded Joey Gouly     2022-08-30  59  	const char *secstrs = (void *)hdr + sechdrs[hdr->e_shstrndx].sh_offset;
b3adc3844e1ded Joey Gouly     2022-08-30  60  
b3adc3844e1ded Joey Gouly     2022-08-30  61  	for (s = sechdrs, se = sechdrs + hdr->e_shnum; s < se; s++) {
b3adc3844e1ded Joey Gouly     2022-08-30 @62  		if (strcmp(name, secstrs + s->sh_name) == 0)
b3adc3844e1ded Joey Gouly     2022-08-30  63  			return s;
b3adc3844e1ded Joey Gouly     2022-08-30  64  	}
b3adc3844e1ded Joey Gouly     2022-08-30  65  
b3adc3844e1ded Joey Gouly     2022-08-30  66  	return NULL;
5a3ae7b314a225 Ard Biesheuvel 2019-04-07  67  }
5a3ae7b314a225 Ard Biesheuvel 2019-04-07  68  

:::::: The code at line 48 was first introduced by commit
:::::: 0a285dfe875d5206da10c3d00564727f9482a9dd arm64: Avoid cpus_have_const_cap() for ARM64_WORKAROUND_843419

:::::: TO: Mark Rutland <[email protected]>
:::::: CC: Catalin Marinas <[email protected]>

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.