[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: |
Chenqun (kuhn) |
Subject: |
RE: [PATCH] target/ppc/excp_helper: Add a missing break for POWERPC_EXCP_HISI |
Date: |
Wed, 28 Oct 2020 05:43:46 +0000 |
> -----Original Message-----
> From: David Gibson [mailto:david@gibson.dropbear.id.au]
> Sent: Wednesday, October 28, 2020 12:28 PM
> To: Chenqun (kuhn) <kuhn.chenqun@huawei.com>
> Cc: qemu-devel@nongnu.org; qemu-trivial@nongnu.org; clg@kaod.org;
> Zhanghailiang <zhang.zhanghailiang@huawei.com>; ganqixin
> <ganqixin@huawei.com>; Euler Robot <euler.robot@huawei.com>
> Subject: Re: [PATCH] target/ppc/excp_helper: Add a missing break for
> POWERPC_EXCP_HISI
>
> 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.
>
OK, I'll modify it later.
'
Thanks,
Chen Qun
> >
> > ---
> > 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