From: "Souptick Joarder (HPE)" <[email protected]>
Kernel test robot throws warning ->
arch/powerpc/kernel/interrupt.c:
In function 'interrupt_exit_kernel_prepare':
>> arch/powerpc/kernel/interrupt.c:542:55: warning: suggest
braces around empty body in an 'if' statement [-Wempty-body]
542 | CT_WARN_ON(ct_state() == CONTEXT_USER);
Fix it by adding braces.
Reported-by: Kernel test robot <[email protected]>
Signed-off-by: Souptick Joarder (HPE) <[email protected]>
---
arch/powerpc/kernel/interrupt.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/arch/powerpc/kernel/interrupt.c b/arch/powerpc/kernel/interrupt.c
index 784ea3289c84..b8a918bab48f 100644
--- a/arch/powerpc/kernel/interrupt.c
+++ b/arch/powerpc/kernel/interrupt.c
@@ -538,8 +538,9 @@ notrace unsigned long interrupt_exit_kernel_prepare(struct pt_regs *regs)
* CT_WARN_ON comes here via program_check_exception,
* so avoid recursion.
*/
- if (TRAP(regs) != INTERRUPT_PROGRAM)
+ if (TRAP(regs) != INTERRUPT_PROGRAM) {
CT_WARN_ON(ct_state() == CONTEXT_USER);
+ }
kuap = kuap_get_and_assert_locked();
--
2.25.1
On 6/18/22 20:11, Souptick Joarder wrote:
> From: "Souptick Joarder (HPE)" <[email protected]>
>
> Kernel test robot throws warning ->
>
> arch/powerpc/kernel/interrupt.c:
> In function 'interrupt_exit_kernel_prepare':
>
>>> arch/powerpc/kernel/interrupt.c:542:55: warning: suggest
> braces around empty body in an 'if' statement [-Wempty-body]
> 542 | CT_WARN_ON(ct_state() == CONTEXT_USER);
That must be when CONFIG_CONTEXT_TRACKING_USER is not set/enabled.
Can you confirm that?
Then the preferable fix would be in <linux/context_tracking.h>:
change
#define CT_WARN_ON(cond)
to either an empty do-while loop or a static inline function.
(adding Frederic to Cc:)
>
> Fix it by adding braces.
>
> Reported-by: Kernel test robot <[email protected]>
> Signed-off-by: Souptick Joarder (HPE) <[email protected]>
> ---
> arch/powerpc/kernel/interrupt.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/arch/powerpc/kernel/interrupt.c b/arch/powerpc/kernel/interrupt.c
> index 784ea3289c84..b8a918bab48f 100644
> --- a/arch/powerpc/kernel/interrupt.c
> +++ b/arch/powerpc/kernel/interrupt.c
> @@ -538,8 +538,9 @@ notrace unsigned long interrupt_exit_kernel_prepare(struct pt_regs *regs)
> * CT_WARN_ON comes here via program_check_exception,
> * so avoid recursion.
> */
> - if (TRAP(regs) != INTERRUPT_PROGRAM)
> + if (TRAP(regs) != INTERRUPT_PROGRAM) {
> CT_WARN_ON(ct_state() == CONTEXT_USER);
> + }
>
> kuap = kuap_get_and_assert_locked();
>
--
~Randy
On Sun, Jun 19, 2022 at 11:13 AM Randy Dunlap <[email protected]> wrote:
>
>
>
> On 6/18/22 20:11, Souptick Joarder wrote:
> > From: "Souptick Joarder (HPE)" <[email protected]>
> >
> > Kernel test robot throws warning ->
> >
> > arch/powerpc/kernel/interrupt.c:
> > In function 'interrupt_exit_kernel_prepare':
> >
> >>> arch/powerpc/kernel/interrupt.c:542:55: warning: suggest
> > braces around empty body in an 'if' statement [-Wempty-body]
> > 542 | CT_WARN_ON(ct_state() == CONTEXT_USER);
>
> That must be when CONFIG_CONTEXT_TRACKING_USER is not set/enabled.
> Can you confirm that?
Yes, CONFIG_CONTEXT_TRACKING_USER is not set.
>
> Then the preferable fix would be in <linux/context_tracking.h>:
>
> change
> #define CT_WARN_ON(cond)
>
> to either an empty do-while loop or a static inline function.
>
> (adding Frederic to Cc:)
>
> >
> > Fix it by adding braces.
> >
> > Reported-by: Kernel test robot <[email protected]>
> > Signed-off-by: Souptick Joarder (HPE) <[email protected]>
> > ---
> > arch/powerpc/kernel/interrupt.c | 3 ++-
> > 1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/arch/powerpc/kernel/interrupt.c b/arch/powerpc/kernel/interrupt.c
> > index 784ea3289c84..b8a918bab48f 100644
> > --- a/arch/powerpc/kernel/interrupt.c
> > +++ b/arch/powerpc/kernel/interrupt.c
> > @@ -538,8 +538,9 @@ notrace unsigned long interrupt_exit_kernel_prepare(struct pt_regs *regs)
> > * CT_WARN_ON comes here via program_check_exception,
> > * so avoid recursion.
> > */
> > - if (TRAP(regs) != INTERRUPT_PROGRAM)
> > + if (TRAP(regs) != INTERRUPT_PROGRAM) {
> > CT_WARN_ON(ct_state() == CONTEXT_USER);
> > + }
> >
> > kuap = kuap_get_and_assert_locked();
> >
>
> --
> ~Randy
Le 19/06/2022 à 05:11, Souptick Joarder a écrit :
> From: "Souptick Joarder (HPE)" <[email protected]>
>
> Kernel test robot throws warning ->
>
> arch/powerpc/kernel/interrupt.c:
> In function 'interrupt_exit_kernel_prepare':
>
>>> arch/powerpc/kernel/interrupt.c:542:55: warning: suggest
> braces around empty body in an 'if' statement [-Wempty-body]
> 542 | CT_WARN_ON(ct_state() == CONTEXT_USER);
>
> Fix it by adding braces.
There must be no braces for single 'if' statement , see
https://docs.kernel.org/process/coding-style.html#placing-braces-and-spaces
The problem is likely that CT_WARN_ON() is empty in some CONFIGs.
You have to fix it, for instance by changing it to a "do { } while (0)"
>
> Reported-by: Kernel test robot <[email protected]>
> Signed-off-by: Souptick Joarder (HPE) <[email protected]>
> ---
> arch/powerpc/kernel/interrupt.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/arch/powerpc/kernel/interrupt.c b/arch/powerpc/kernel/interrupt.c
> index 784ea3289c84..b8a918bab48f 100644
> --- a/arch/powerpc/kernel/interrupt.c
> +++ b/arch/powerpc/kernel/interrupt.c
> @@ -538,8 +538,9 @@ notrace unsigned long interrupt_exit_kernel_prepare(struct pt_regs *regs)
> * CT_WARN_ON comes here via program_check_exception,
> * so avoid recursion.
> */
> - if (TRAP(regs) != INTERRUPT_PROGRAM)
> + if (TRAP(regs) != INTERRUPT_PROGRAM) {
> CT_WARN_ON(ct_state() == CONTEXT_USER);
> + }
>
> kuap = kuap_get_and_assert_locked();
>
> --
> 2.25.1
>