Re: [PATCH] powerpc/time: Fix build failure due to do_hard_irq_enable() on PPC32

2022-01-19 Thread Michael Ellerman
On Mon, 10 Jan 2022 15:29:53 +, Christophe Leroy wrote:
> CC  arch/powerpc/kernel/time.o
>   In file included from :
>   ./arch/powerpc/include/asm/hw_irq.h: In function 'do_hard_irq_enable':
>   ././include/linux/compiler_types.h:335:45: error: call to 
> '__compiletime_assert_35' declared with attribute error: BUILD_BUG failed
> 335 | _compiletime_assert(condition, msg, 
> __compiletime_assert_, __COUNTER__)
> | ^
>   ././include/linux/compiler_types.h:316:25: note: in definition of macro 
> '__compiletime_assert'
> 316 | prefix ## suffix(); 
> \
> | ^~
>   ././include/linux/compiler_types.h:335:9: note: in expansion of macro 
> '_compiletime_assert'
> 335 | _compiletime_assert(condition, msg, 
> __compiletime_assert_, __COUNTER__)
> | ^~~
>   ./include/linux/build_bug.h:39:37: note: in expansion of macro 
> 'compiletime_assert'
>  39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), 
> msg)
> | ^~
>   ./include/linux/build_bug.h:59:21: note: in expansion of macro 
> 'BUILD_BUG_ON_MSG'
>  59 | #define BUILD_BUG() BUILD_BUG_ON_MSG(1, "BUILD_BUG failed")
> | ^~~~
>   ./arch/powerpc/include/asm/hw_irq.h:483:9: note: in expansion of macro 
> 'BUILD_BUG'
> 483 | BUILD_BUG();
> | ^
> 
> [...]

Applied to powerpc/fixes.

[1/1] powerpc/time: Fix build failure due to do_hard_irq_enable() on PPC32
  https://git.kernel.org/powerpc/c/87b9d74fb0be80054c729e8d6a119ca0955cedf3

cheers


Re: [PATCH] powerpc/time: Fix build failure due to do_hard_irq_enable() on PPC32

2022-01-10 Thread Nicholas Piggin
Excerpts from Christophe Leroy's message of January 11, 2022 1:29 am:
> CC  arch/powerpc/kernel/time.o
>   In file included from :
>   ./arch/powerpc/include/asm/hw_irq.h: In function 'do_hard_irq_enable':
>   ././include/linux/compiler_types.h:335:45: error: call to 
> '__compiletime_assert_35' declared with attribute error: BUILD_BUG failed
> 335 | _compiletime_assert(condition, msg, 
> __compiletime_assert_, __COUNTER__)
> | ^
>   ././include/linux/compiler_types.h:316:25: note: in definition of macro 
> '__compiletime_assert'
> 316 | prefix ## suffix(); 
> \
> | ^~
>   ././include/linux/compiler_types.h:335:9: note: in expansion of macro 
> '_compiletime_assert'
> 335 | _compiletime_assert(condition, msg, 
> __compiletime_assert_, __COUNTER__)
> | ^~~
>   ./include/linux/build_bug.h:39:37: note: in expansion of macro 
> 'compiletime_assert'
>  39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), 
> msg)
> | ^~
>   ./include/linux/build_bug.h:59:21: note: in expansion of macro 
> 'BUILD_BUG_ON_MSG'
>  59 | #define BUILD_BUG() BUILD_BUG_ON_MSG(1, "BUILD_BUG failed")
> | ^~~~
>   ./arch/powerpc/include/asm/hw_irq.h:483:9: note: in expansion of macro 
> 'BUILD_BUG'
> 483 | BUILD_BUG();
> | ^
> 
> should_hard_irq_enable() returns false on PPC32 so this BUILD_BUG() shouldn't 
> trigger.
> 
> Force inlining of should_hard_irq_enable()
> 
> Signed-off-by: Christophe Leroy 
> Fixes: 0faf20a1ad16 ("powerpc/64s/interrupt: Don't enable MSR[EE] in irq 
> handlers unless perf is in use")
> Cc: Nicholas Piggin 

Acked-by: Nicholas Piggin 

Thanks,
Nick

> ---
>  arch/powerpc/include/asm/hw_irq.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/powerpc/include/asm/hw_irq.h 
> b/arch/powerpc/include/asm/hw_irq.h
> index a58fb4aa6c81..674e5aaafcbd 100644
> --- a/arch/powerpc/include/asm/hw_irq.h
> +++ b/arch/powerpc/include/asm/hw_irq.h
> @@ -473,7 +473,7 @@ static inline bool arch_irq_disabled_regs(struct pt_regs 
> *regs)
>   return !(regs->msr & MSR_EE);
>  }
>  
> -static inline bool should_hard_irq_enable(void)
> +static __always_inline bool should_hard_irq_enable(void)
>  {
>   return false;
>  }
> -- 
> 2.33.1
> 


[PATCH] powerpc/time: Fix build failure due to do_hard_irq_enable() on PPC32

2022-01-10 Thread Christophe Leroy
  CC  arch/powerpc/kernel/time.o
In file included from :
./arch/powerpc/include/asm/hw_irq.h: In function 'do_hard_irq_enable':
././include/linux/compiler_types.h:335:45: error: call to 
'__compiletime_assert_35' declared with attribute error: BUILD_BUG failed
  335 | _compiletime_assert(condition, msg, 
__compiletime_assert_, __COUNTER__)
  | ^
././include/linux/compiler_types.h:316:25: note: in definition of macro 
'__compiletime_assert'
  316 | prefix ## suffix(); 
\
  | ^~
././include/linux/compiler_types.h:335:9: note: in expansion of macro 
'_compiletime_assert'
  335 | _compiletime_assert(condition, msg, 
__compiletime_assert_, __COUNTER__)
  | ^~~
./include/linux/build_bug.h:39:37: note: in expansion of macro 
'compiletime_assert'
   39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), 
msg)
  | ^~
./include/linux/build_bug.h:59:21: note: in expansion of macro 
'BUILD_BUG_ON_MSG'
   59 | #define BUILD_BUG() BUILD_BUG_ON_MSG(1, "BUILD_BUG failed")
  | ^~~~
./arch/powerpc/include/asm/hw_irq.h:483:9: note: in expansion of macro 
'BUILD_BUG'
  483 | BUILD_BUG();
  | ^

should_hard_irq_enable() returns false on PPC32 so this BUILD_BUG() shouldn't 
trigger.

Force inlining of should_hard_irq_enable()

Signed-off-by: Christophe Leroy 
Fixes: 0faf20a1ad16 ("powerpc/64s/interrupt: Don't enable MSR[EE] in irq 
handlers unless perf is in use")
Cc: Nicholas Piggin 
---
 arch/powerpc/include/asm/hw_irq.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/powerpc/include/asm/hw_irq.h 
b/arch/powerpc/include/asm/hw_irq.h
index a58fb4aa6c81..674e5aaafcbd 100644
--- a/arch/powerpc/include/asm/hw_irq.h
+++ b/arch/powerpc/include/asm/hw_irq.h
@@ -473,7 +473,7 @@ static inline bool arch_irq_disabled_regs(struct pt_regs 
*regs)
return !(regs->msr & MSR_EE);
 }
 
-static inline bool should_hard_irq_enable(void)
+static __always_inline bool should_hard_irq_enable(void)
 {
return false;
 }
-- 
2.33.1