2022-06-19 03:28:22

by Souptick Joarder

[permalink] [raw]
Subject: [PATCH] powerpc/interrupt: Put braces around empty body in an 'if' statement

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


2022-06-19 06:23:01

by Randy Dunlap

[permalink] [raw]
Subject: Re: [PATCH] powerpc/interrupt: Put braces around empty body in an 'if' statement



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

2022-06-19 06:51:02

by Souptick Joarder

[permalink] [raw]
Subject: Re: [PATCH] powerpc/interrupt: Put braces around empty body in an 'if' statement

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

2022-06-19 06:51:39

by Christophe Leroy

[permalink] [raw]
Subject: Re: [PATCH] powerpc/interrupt: Put braces around empty body in an 'if' statement



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
>