qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] target/ppc/excp_helper: Add a missing break for POWERPC_EXCP


From: David Gibson
Subject: Re: [PATCH] target/ppc/excp_helper: Add a missing break for POWERPC_EXCP_HISI
Date: Wed, 28 Oct 2020 15:27:58 +1100

On Wed, Oct 28, 2020 at 12:16:20PM +0800, Chen Qun wrote:
> When using -Wimplicit-fallthrough in our CFLAGS, the compiler showed warning:
> ../target/ppc/excp_helper.c: In function ‘powerpc_excp’:
> ../target/ppc/excp_helper.c:529:13: warning: this statement may fall through 
> [-Wimplicit-fallthrough=]
>   529 |         msr |= env->error_code;
>       |         ~~~~^~~~~~~~~~~~~~~~~~
> ../target/ppc/excp_helper.c:530:5: note: here
>   530 |     case POWERPC_EXCP_HDECR:     /* Hypervisor decrementer exception  
>        */
>       |     ^~~~
> 
> A break statement may be required to enter this exception.
> 
> Reported-by: Euler Robot <euler.robot@huawei.com>
> Signed-off-by: Chen Qun <kuhn.chenqun@huawei.com>

This change is incorrect.  We definitely need the fallthrough to set
srr[01] properly.  So the correct fix is to annotate the fallthrough,
not remove it.

> 
> ---
> I guess there's a break missing in 'POWERPC_EXCP_HISI' branch,
> just like the 'POWERPC_EXCP_ISI' branch.
> ---
>  target/ppc/excp_helper.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/target/ppc/excp_helper.c b/target/ppc/excp_helper.c
> index a988ba15f4..5e69ac1b33 100644
> --- a/target/ppc/excp_helper.c
> +++ b/target/ppc/excp_helper.c
> @@ -527,6 +527,7 @@ static inline void powerpc_excp(PowerPCCPU *cpu, int 
> excp_model, int excp)
>          break;
>      case POWERPC_EXCP_HISI:      /* Hypervisor instruction storage exception 
> */
>          msr |= env->error_code;
> +        break;
>      case POWERPC_EXCP_HDECR:     /* Hypervisor decrementer exception         
> */
>      case POWERPC_EXCP_HDSI:      /* Hypervisor data storage exception        
> */
>      case POWERPC_EXCP_HDSEG:     /* Hypervisor data segment exception        
> */

-- 
David Gibson                    | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au  | minimalist, thank you.  NOT _the_ _other_
                                | _way_ _around_!
http://www.ozlabs.org/~dgibson

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]