* arch/arm/mm/proc.c:82:6: error: conflicting types for 'cpu_arm920_reset'
@ 2024-06-25 20:37 kernel test robot
2024-06-26 17:21 ` Nathan Chancellor
0 siblings, 1 reply; 4+ messages in thread
From: kernel test robot @ 2024-06-25 20:37 UTC (permalink / raw)
To: Linus Walleij
Cc: llvm, oe-kbuild-all, linux-kernel, Russell King (Oracle), Sami Tolvanen
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 55027e689933ba2e64f3d245fb1ff185b3e7fc81
commit: 1a4fec49efe5273eb2fcf575175a117745f76f97 ARM: 9392/2: Support CLANG CFI
date: 8 weeks ago
config: arm-randconfig-002-20240626 (https://download.01.org/0day-ci/archive/20240626/202406260432.6WGV2jCk-lkp@intel.com/config)
compiler: clang version 19.0.0git (https://github.com/llvm/llvm-project ad79a14c9e5ec4a369eed4adf567c22cc029863f)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240626/202406260432.6WGV2jCk-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/202406260432.6WGV2jCk-lkp@intel.com/
All errors (new ones prefixed by >>):
>> arch/arm/mm/proc.c:82:6: error: conflicting types for 'cpu_arm920_reset'
82 | void cpu_arm920_reset(void);
| ^
arch/arm/include/asm/proc-fns.h:96:13: note: previous declaration is here
96 | extern void cpu_reset(unsigned long addr, bool hvc) __attribute__((noreturn));
| ^
arch/arm/include/asm/glue-proc.h:251:21: note: expanded from macro 'cpu_reset'
251 | #define cpu_reset __glue(CPU_NAME,_reset)
| ^
arch/arm/include/asm/glue.h:20:26: note: expanded from macro '__glue'
20 | #define __glue(name,fn) ____glue(name,fn)
| ^
arch/arm/include/asm/glue.h:16:27: note: expanded from macro '____glue'
16 | #define ____glue(name,fn) name##fn
| ^
<scratch space>:70:1: note: expanded from here
70 | cpu_arm920_reset
| ^
1 error generated.
vim +/cpu_arm920_reset +82 arch/arm/mm/proc.c
393999fa96273b Linus Walleij 2024-04-23 76
393999fa96273b Linus Walleij 2024-04-23 77 #ifdef CONFIG_CPU_ARM920T
393999fa96273b Linus Walleij 2024-04-23 78 void cpu_arm920_proc_init(void);
393999fa96273b Linus Walleij 2024-04-23 79 __ADDRESSABLE(cpu_arm920_proc_init);
393999fa96273b Linus Walleij 2024-04-23 80 void cpu_arm920_proc_fin(void);
393999fa96273b Linus Walleij 2024-04-23 81 __ADDRESSABLE(cpu_arm920_proc_fin);
393999fa96273b Linus Walleij 2024-04-23 @82 void cpu_arm920_reset(void);
393999fa96273b Linus Walleij 2024-04-23 83 __ADDRESSABLE(cpu_arm920_reset);
393999fa96273b Linus Walleij 2024-04-23 84 int cpu_arm920_do_idle(void);
393999fa96273b Linus Walleij 2024-04-23 85 __ADDRESSABLE(cpu_arm920_do_idle);
393999fa96273b Linus Walleij 2024-04-23 86 void cpu_arm920_dcache_clean_area(void *addr, int size);
393999fa96273b Linus Walleij 2024-04-23 87 __ADDRESSABLE(cpu_arm920_dcache_clean_area);
393999fa96273b Linus Walleij 2024-04-23 88 void cpu_arm920_switch_mm(phys_addr_t pgd_phys, struct mm_struct *mm);
393999fa96273b Linus Walleij 2024-04-23 89 __ADDRESSABLE(cpu_arm920_switch_mm);
393999fa96273b Linus Walleij 2024-04-23 90 void cpu_arm920_set_pte_ext(pte_t *ptep, pte_t pte, unsigned int ext);
393999fa96273b Linus Walleij 2024-04-23 91 __ADDRESSABLE(cpu_arm920_set_pte_ext);
393999fa96273b Linus Walleij 2024-04-23 92 #ifdef CONFIG_ARM_CPU_SUSPEND
393999fa96273b Linus Walleij 2024-04-23 93 void cpu_arm920_do_suspend(void *);
393999fa96273b Linus Walleij 2024-04-23 94 __ADDRESSABLE(cpu_arm920_do_suspend);
393999fa96273b Linus Walleij 2024-04-23 95 void cpu_arm920_do_resume(void *);
393999fa96273b Linus Walleij 2024-04-23 96 __ADDRESSABLE(cpu_arm920_do_resume);
393999fa96273b Linus Walleij 2024-04-23 97 #endif /* CONFIG_ARM_CPU_SUSPEND */
393999fa96273b Linus Walleij 2024-04-23 98 #endif /* CONFIG_CPU_ARM920T */
393999fa96273b Linus Walleij 2024-04-23 99
:::::: The code at line 82 was first introduced by commit
:::::: 393999fa96273bab8d6efb2f4724030916afd61b ARM: 9389/2: mm: Define prototypes for all per-processor calls
:::::: TO: Linus Walleij <linus.walleij@linaro.org>
:::::: CC: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: arch/arm/mm/proc.c:82:6: error: conflicting types for 'cpu_arm920_reset'
2024-06-25 20:37 arch/arm/mm/proc.c:82:6: error: conflicting types for 'cpu_arm920_reset' kernel test robot
@ 2024-06-26 17:21 ` Nathan Chancellor
2024-06-26 20:59 ` Linus Walleij
0 siblings, 1 reply; 4+ messages in thread
From: Nathan Chancellor @ 2024-06-26 17:21 UTC (permalink / raw)
To: kernel test robot
Cc: Linus Walleij, llvm, oe-kbuild-all, linux-kernel,
Russell King (Oracle),
Sami Tolvanen
On Wed, Jun 26, 2024 at 04:37:00AM +0800, kernel test robot wrote:
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head: 55027e689933ba2e64f3d245fb1ff185b3e7fc81
> commit: 1a4fec49efe5273eb2fcf575175a117745f76f97 ARM: 9392/2: Support CLANG CFI
> date: 8 weeks ago
> config: arm-randconfig-002-20240626 (https://download.01.org/0day-ci/archive/20240626/202406260432.6WGV2jCk-lkp@intel.com/config)
> compiler: clang version 19.0.0git (https://github.com/llvm/llvm-project ad79a14c9e5ec4a369eed4adf567c22cc029863f)
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240626/202406260432.6WGV2jCk-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/202406260432.6WGV2jCk-lkp@intel.com/
>
> All errors (new ones prefixed by >>):
>
> >> arch/arm/mm/proc.c:82:6: error: conflicting types for 'cpu_arm920_reset'
> 82 | void cpu_arm920_reset(void);
> | ^
> arch/arm/include/asm/proc-fns.h:96:13: note: previous declaration is here
> 96 | extern void cpu_reset(unsigned long addr, bool hvc) __attribute__((noreturn));
> | ^
> arch/arm/include/asm/glue-proc.h:251:21: note: expanded from macro 'cpu_reset'
> 251 | #define cpu_reset __glue(CPU_NAME,_reset)
> | ^
> arch/arm/include/asm/glue.h:20:26: note: expanded from macro '__glue'
> 20 | #define __glue(name,fn) ____glue(name,fn)
> | ^
> arch/arm/include/asm/glue.h:16:27: note: expanded from macro '____glue'
> 16 | #define ____glue(name,fn) name##fn
> | ^
> <scratch space>:70:1: note: expanded from here
> 70 | cpu_arm920_reset
> | ^
> 1 error generated.
Hmmm, it seems like the prototypes of the reset functions in
arch/arm/mm/proc.c are incorrect? This builds for me with the original
configuration and allmodconfig + CONFIG_CFI_CLANG=y.
diff --git a/arch/arm/mm/proc.c b/arch/arm/mm/proc.c
index bdbbf65d1b36..4e4b5733bd26 100644
--- a/arch/arm/mm/proc.c
+++ b/arch/arm/mm/proc.c
@@ -17,7 +17,7 @@ void cpu_arm7tdmi_proc_init(void);
__ADDRESSABLE(cpu_arm7tdmi_proc_init);
void cpu_arm7tdmi_proc_fin(void);
__ADDRESSABLE(cpu_arm7tdmi_proc_fin);
-void cpu_arm7tdmi_reset(void);
+void cpu_arm7tdmi_reset(unsigned long addr, bool hvc) __attribute__((noreturn));
__ADDRESSABLE(cpu_arm7tdmi_reset);
int cpu_arm7tdmi_do_idle(void);
__ADDRESSABLE(cpu_arm7tdmi_do_idle);
@@ -32,7 +32,7 @@ void cpu_arm720_proc_init(void);
__ADDRESSABLE(cpu_arm720_proc_init);
void cpu_arm720_proc_fin(void);
__ADDRESSABLE(cpu_arm720_proc_fin);
-void cpu_arm720_reset(void);
+void cpu_arm720_reset(unsigned long addr, bool hvc) __attribute__((noreturn));
__ADDRESSABLE(cpu_arm720_reset);
int cpu_arm720_do_idle(void);
__ADDRESSABLE(cpu_arm720_do_idle);
@@ -49,7 +49,7 @@ void cpu_arm740_proc_init(void);
__ADDRESSABLE(cpu_arm740_proc_init);
void cpu_arm740_proc_fin(void);
__ADDRESSABLE(cpu_arm740_proc_fin);
-void cpu_arm740_reset(void);
+void cpu_arm740_reset(unsigned long addr, bool hvc) __attribute__((noreturn));
__ADDRESSABLE(cpu_arm740_reset);
int cpu_arm740_do_idle(void);
__ADDRESSABLE(cpu_arm740_do_idle);
@@ -64,7 +64,7 @@ void cpu_arm9tdmi_proc_init(void);
__ADDRESSABLE(cpu_arm9tdmi_proc_init);
void cpu_arm9tdmi_proc_fin(void);
__ADDRESSABLE(cpu_arm9tdmi_proc_fin);
-void cpu_arm9tdmi_reset(void);
+void cpu_arm9tdmi_reset(unsigned long addr, bool hvc) __attribute__((noreturn));
__ADDRESSABLE(cpu_arm9tdmi_reset);
int cpu_arm9tdmi_do_idle(void);
__ADDRESSABLE(cpu_arm9tdmi_do_idle);
@@ -79,7 +79,7 @@ void cpu_arm920_proc_init(void);
__ADDRESSABLE(cpu_arm920_proc_init);
void cpu_arm920_proc_fin(void);
__ADDRESSABLE(cpu_arm920_proc_fin);
-void cpu_arm920_reset(void);
+void cpu_arm920_reset(unsigned long addr, bool hvc) __attribute__((noreturn));
__ADDRESSABLE(cpu_arm920_reset);
int cpu_arm920_do_idle(void);
__ADDRESSABLE(cpu_arm920_do_idle);
@@ -102,7 +102,7 @@ void cpu_arm922_proc_init(void);
__ADDRESSABLE(cpu_arm922_proc_init);
void cpu_arm922_proc_fin(void);
__ADDRESSABLE(cpu_arm922_proc_fin);
-void cpu_arm922_reset(void);
+void cpu_arm922_reset(unsigned long addr, bool hvc) __attribute__((noreturn));
__ADDRESSABLE(cpu_arm922_reset);
int cpu_arm922_do_idle(void);
__ADDRESSABLE(cpu_arm922_do_idle);
@@ -119,7 +119,7 @@ void cpu_arm925_proc_init(void);
__ADDRESSABLE(cpu_arm925_proc_init);
void cpu_arm925_proc_fin(void);
__ADDRESSABLE(cpu_arm925_proc_fin);
-void cpu_arm925_reset(void);
+void cpu_arm925_reset(unsigned long addr, bool hvc) __attribute__((noreturn));
__ADDRESSABLE(cpu_arm925_reset);
int cpu_arm925_do_idle(void);
__ADDRESSABLE(cpu_arm925_do_idle);
@@ -159,7 +159,7 @@ void cpu_arm940_proc_init(void);
__ADDRESSABLE(cpu_arm940_proc_init);
void cpu_arm940_proc_fin(void);
__ADDRESSABLE(cpu_arm940_proc_fin);
-void cpu_arm940_reset(void);
+void cpu_arm940_reset(unsigned long addr, bool hvc) __attribute__((noreturn));
__ADDRESSABLE(cpu_arm940_reset);
int cpu_arm940_do_idle(void);
__ADDRESSABLE(cpu_arm940_do_idle);
@@ -174,7 +174,7 @@ void cpu_arm946_proc_init(void);
__ADDRESSABLE(cpu_arm946_proc_init);
void cpu_arm946_proc_fin(void);
__ADDRESSABLE(cpu_arm946_proc_fin);
-void cpu_arm946_reset(void);
+void cpu_arm946_reset(unsigned long addr, bool hvc) __attribute__((noreturn));
__ADDRESSABLE(cpu_arm946_reset);
int cpu_arm946_do_idle(void);
__ADDRESSABLE(cpu_arm946_do_idle);
@@ -429,7 +429,7 @@ void cpu_v7_proc_init(void);
__ADDRESSABLE(cpu_v7_proc_init);
void cpu_v7_proc_fin(void);
__ADDRESSABLE(cpu_v7_proc_fin);
-void cpu_v7_reset(void);
+void cpu_v7_reset(unsigned long addr, bool hvc) __attribute__((noreturn));
__ADDRESSABLE(cpu_v7_reset);
int cpu_v7_do_idle(void);
__ADDRESSABLE(cpu_v7_do_idle);
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: arch/arm/mm/proc.c:82:6: error: conflicting types for 'cpu_arm920_reset'
2024-06-26 17:21 ` Nathan Chancellor
@ 2024-06-26 20:59 ` Linus Walleij
2024-06-26 21:03 ` Nathan Chancellor
0 siblings, 1 reply; 4+ messages in thread
From: Linus Walleij @ 2024-06-26 20:59 UTC (permalink / raw)
To: Nathan Chancellor
Cc: kernel test robot, llvm, oe-kbuild-all, linux-kernel,
Russell King (Oracle),
Sami Tolvanen
On Wed, Jun 26, 2024 at 7:21 PM Nathan Chancellor <nathan@kernel.org> wrote:
> Hmmm, it seems like the prototypes of the reset functions in
> arch/arm/mm/proc.c are incorrect? This builds for me with the original
> configuration and allmodconfig + CONFIG_CFI_CLANG=y.
Incidentally I fixed it earlier today!
https://lore.kernel.org/linux-arm-kernel/20240626-arm-proto-regression-v1-1-089c23ea13dd@linaro.org/
I added you on Reported-by for now.
> +void cpu_arm7tdmi_reset(unsigned long addr, bool hvc) __attribute__((noreturn));
The attribute is not needed on the prototype AFAICT?
Yours,
Linus Walleij
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: arch/arm/mm/proc.c:82:6: error: conflicting types for 'cpu_arm920_reset'
2024-06-26 20:59 ` Linus Walleij
@ 2024-06-26 21:03 ` Nathan Chancellor
0 siblings, 0 replies; 4+ messages in thread
From: Nathan Chancellor @ 2024-06-26 21:03 UTC (permalink / raw)
To: Linus Walleij
Cc: kernel test robot, llvm, oe-kbuild-all, linux-kernel,
Russell King (Oracle),
Sami Tolvanen
On Wed, Jun 26, 2024 at 10:59:11PM +0200, Linus Walleij wrote:
> On Wed, Jun 26, 2024 at 7:21 PM Nathan Chancellor <nathan@kernel.org> wrote:
>
> > Hmmm, it seems like the prototypes of the reset functions in
> > arch/arm/mm/proc.c are incorrect? This builds for me with the original
> > configuration and allmodconfig + CONFIG_CFI_CLANG=y.
>
> Incidentally I fixed it earlier today!
> https://lore.kernel.org/linux-arm-kernel/20240626-arm-proto-regression-v1-1-089c23ea13dd@linaro.org/
Aha, I did not go searching like I normally do to see if a patch was
already sent for it, guess that would have saved me a little time :)
> I added you on Reported-by for now.
>
> > +void cpu_arm7tdmi_reset(unsigned long addr, bool hvc) __attribute__((noreturn));
>
> The attribute is not needed on the prototype AFAICT?
I think that in general, noreturn needs to be on prototypes, but for
this prototype/the sake of CFI, I don't think it matters. Sami is free
to correct me though.
Cheers,
Nathan
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2024-06-26 21:03 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-06-25 20:37 arch/arm/mm/proc.c:82:6: error: conflicting types for 'cpu_arm920_reset' kernel test robot
2024-06-26 17:21 ` Nathan Chancellor
2024-06-26 20:59 ` Linus Walleij
2024-06-26 21:03 ` Nathan Chancellor
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®