Patchwork [RFC,03/20] target-i386: if x86_cpu_realize() failed report error and do cleanup

login
register
mail settings
Submitter Igor Mammedov
Date Aug. 10, 2012, 11:22 a.m.
Message ID <1344597756-2890-4-git-send-email-imammedo@redhat.com>
Download mbox | patch
Permalink /patch/176447/
State New
Headers show

Comments

Igor Mammedov - Aug. 10, 2012, 11:22 a.m.
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
---
 target-i386/helper.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)
Andreas Färber - Aug. 10, 2012, 11:41 a.m.
Am 10.08.2012 13:22, schrieb Igor Mammedov:
> Signed-off-by: Igor Mammedov <imammedo@redhat.com>

Acked-by: Andreas Färber <afaerber@suse.de>

/-F

Patch

diff --git a/target-i386/helper.c b/target-i386/helper.c
index 8a5da3d..a0e4c89 100644
--- a/target-i386/helper.c
+++ b/target-i386/helper.c
@@ -1151,6 +1151,7 @@  X86CPU *cpu_x86_init(const char *cpu_model)
 {
     X86CPU *cpu;
     CPUX86State *env;
+    Error *error = NULL;
 
     cpu = X86_CPU(object_new(TYPE_X86_CPU));
     env = &cpu->env;
@@ -1161,8 +1162,12 @@  X86CPU *cpu_x86_init(const char *cpu_model)
         return NULL;
     }
 
-    x86_cpu_realize(OBJECT(cpu), NULL);
-
+    x86_cpu_realize(OBJECT(cpu), &error);
+    if (error_is_set(&error)) {
+        error_free(error);
+        object_delete(OBJECT(cpu));
+        return NULL;
+    }
     return cpu;
 }