diff mbox

spapr: exit gentfully when CPU doesn't support requested compat mode

Message ID 149734236294.28467.16891018961029258858.stgit@bahia.lan
State New
Headers show

Commit Message

Greg Kurz June 13, 2017, 8:26 a.m. UTC
QEMU currently aborts if the user asks something unrealistic like power9
compat mode with a POWER8 CPU for example. Since this isn't a bug in QEMU,
there's no point in aborting. The same goes with the other possible error
paths in ppc_set_compat_all(). Let's just terminate QEMU instead.

Reported-by: Andrea Bolognani <abologna@redhat.com>
Signed-off-by: Greg Kurz <groug@kaod.org>
---
 hw/ppc/spapr.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

David Gibson June 13, 2017, 8:45 a.m. UTC | #1
On Tue, Jun 13, 2017 at 10:26:02AM +0200, Greg Kurz wrote:
> QEMU currently aborts if the user asks something unrealistic like power9
> compat mode with a POWER8 CPU for example. Since this isn't a bug in QEMU,
> there's no point in aborting. The same goes with the other possible error
> paths in ppc_set_compat_all(). Let's just terminate QEMU instead.
> 
> Reported-by: Andrea Bolognani <abologna@redhat.com>
> Signed-off-by: Greg Kurz <groug@kaod.org>

Heh, I already folded an identical fix into ppc-for-2.10.


> ---
>  hw/ppc/spapr.c |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
> index b2217f39eeea..d0cc124935c0 100644
> --- a/hw/ppc/spapr.c
> +++ b/hw/ppc/spapr.c
> @@ -1345,7 +1345,7 @@ static void ppc_spapr_reset(void)
>          spapr_ovec_cleanup(spapr->ov5_cas);
>          spapr->ov5_cas = spapr_ovec_new();
>  
> -        ppc_set_compat_all(spapr->max_compat_pvr, &error_abort);
> +        ppc_set_compat_all(spapr->max_compat_pvr, &error_fatal);
>      }
>  
>      fdt = spapr_build_fdt(spapr, rtas_addr, spapr->rtas_size);
>
Greg Kurz June 13, 2017, 8:50 a.m. UTC | #2
On Tue, 13 Jun 2017 16:45:55 +0800
David Gibson <david@gibson.dropbear.id.au> wrote:

> On Tue, Jun 13, 2017 at 10:26:02AM +0200, Greg Kurz wrote:
> > QEMU currently aborts if the user asks something unrealistic like power9
> > compat mode with a POWER8 CPU for example. Since this isn't a bug in QEMU,
> > there's no point in aborting. The same goes with the other possible error
> > paths in ppc_set_compat_all(). Let's just terminate QEMU instead.
> > 
> > Reported-by: Andrea Bolognani <abologna@redhat.com>
> > Signed-off-by: Greg Kurz <groug@kaod.org>  
> 
> Heh, I already folded an identical fix into ppc-for-2.10.
> 

Yeah I saw your other mail just after sending this :)

> 
> > ---
> >  hw/ppc/spapr.c |    2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
> > index b2217f39eeea..d0cc124935c0 100644
> > --- a/hw/ppc/spapr.c
> > +++ b/hw/ppc/spapr.c
> > @@ -1345,7 +1345,7 @@ static void ppc_spapr_reset(void)
> >          spapr_ovec_cleanup(spapr->ov5_cas);
> >          spapr->ov5_cas = spapr_ovec_new();
> >  
> > -        ppc_set_compat_all(spapr->max_compat_pvr, &error_abort);
> > +        ppc_set_compat_all(spapr->max_compat_pvr, &error_fatal);
> >      }
> >  
> >      fdt = spapr_build_fdt(spapr, rtas_addr, spapr->rtas_size);
> >   
>
diff mbox

Patch

diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index b2217f39eeea..d0cc124935c0 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -1345,7 +1345,7 @@  static void ppc_spapr_reset(void)
         spapr_ovec_cleanup(spapr->ov5_cas);
         spapr->ov5_cas = spapr_ovec_new();
 
-        ppc_set_compat_all(spapr->max_compat_pvr, &error_abort);
+        ppc_set_compat_all(spapr->max_compat_pvr, &error_fatal);
     }
 
     fdt = spapr_build_fdt(spapr, rtas_addr, spapr->rtas_size);