diff mbox

ppc: abort if compat property contains an unknown value

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

Commit Message

Greg Kurz July 13, 2016, 10 a.m. UTC
It is not possible to set the compat property to an unknown value with
powerpc_set_compat(). Something must have gone terribly wrong in QEMU,
if we detect an "Internal error" in powerpc_get_compat(). Let's abort then.

This patch also drops the "max_compat ? *max_compat : -1" construct. It is
useless since max_compat is dereferenced a few lines above.

Signed-off-by: Greg Kurz <groug@kaod.org>
---
 target-ppc/translate_init.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Thomas Huth July 13, 2016, 12:05 p.m. UTC | #1
On 13.07.2016 12:00, Greg Kurz wrote:
> It is not possible to set the compat property to an unknown value with
> powerpc_set_compat(). Something must have gone terribly wrong in QEMU,
> if we detect an "Internal error" in powerpc_get_compat(). Let's abort then.
> 
> This patch also drops the "max_compat ? *max_compat : -1" construct. It is
> useless since max_compat is dereferenced a few lines above.
> 
> Signed-off-by: Greg Kurz <groug@kaod.org>
> ---
>  target-ppc/translate_init.c |    4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/target-ppc/translate_init.c b/target-ppc/translate_init.c
> index 55688db9c9db..79c86c477878 100644
> --- a/target-ppc/translate_init.c
> +++ b/target-ppc/translate_init.c
> @@ -8446,8 +8446,8 @@ static void powerpc_get_compat(Object *obj, Visitor *v, const char *name,
>      case 0:
>          break;
>      default:
> -        error_setg(errp, "Internal error: compat is set to %x",
> -                   max_compat ? *max_compat : -1);
> +        error_report("Internal error: compat is set to %x", *max_compat);
> +        abort();
>          break;
>      }

Since abort() never returns, you can now also remove the "break;"
statement here.

 Thomas
David Gibson July 14, 2016, 2:07 a.m. UTC | #2
On Wed, Jul 13, 2016 at 12:00:17PM +0200, Greg Kurz wrote:
> It is not possible to set the compat property to an unknown value with
> powerpc_set_compat(). Something must have gone terribly wrong in QEMU,
> if we detect an "Internal error" in powerpc_get_compat(). Let's abort then.
> 
> This patch also drops the "max_compat ? *max_compat : -1" construct. It is
> useless since max_compat is dereferenced a few lines above.
> 
> Signed-off-by: Greg Kurz <groug@kaod.org>

Applied to ppc-for-2.7, thanks.

> ---
>  target-ppc/translate_init.c |    4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/target-ppc/translate_init.c b/target-ppc/translate_init.c
> index 55688db9c9db..79c86c477878 100644
> --- a/target-ppc/translate_init.c
> +++ b/target-ppc/translate_init.c
> @@ -8446,8 +8446,8 @@ static void powerpc_get_compat(Object *obj, Visitor *v, const char *name,
>      case 0:
>          break;
>      default:
> -        error_setg(errp, "Internal error: compat is set to %x",
> -                   max_compat ? *max_compat : -1);
> +        error_report("Internal error: compat is set to %x", *max_compat);
> +        abort();
>          break;
>      }
>  
>
diff mbox

Patch

diff --git a/target-ppc/translate_init.c b/target-ppc/translate_init.c
index 55688db9c9db..79c86c477878 100644
--- a/target-ppc/translate_init.c
+++ b/target-ppc/translate_init.c
@@ -8446,8 +8446,8 @@  static void powerpc_get_compat(Object *obj, Visitor *v, const char *name,
     case 0:
         break;
     default:
-        error_setg(errp, "Internal error: compat is set to %x",
-                   max_compat ? *max_compat : -1);
+        error_report("Internal error: compat is set to %x", *max_compat);
+        abort();
         break;
     }