hw/arm/virt: Check that the CPU realize method succeeded
authorPeter Maydell <peter.maydell@linaro.org>
Thu, 25 Jan 2018 11:45:30 +0000 (11:45 +0000)
committerPeter Maydell <peter.maydell@linaro.org>
Thu, 25 Jan 2018 11:45:30 +0000 (11:45 +0000)
We were passing a NULL error pointer to the object_property_set_bool()
call that realizes the CPU object. This meant that we wouldn't detect
failure, and would plough blindly on to crash later trying to use a
NULL CPU object pointer. Detect errors and fail instead.

In particular, this will be necessary to detect the user error
of using "-cpu host" without "-enable-kvm" once we make the host
CPU type be registered unconditionally rather than only in
kvm_arch_init().

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
hw/arm/virt.c

index a4537af4000f0a8c5250a2844b7b784c9701e24d..b334c82edae9fb1ffd70964b9dd2c6f5d9c482c2 100644 (file)
@@ -1404,7 +1404,7 @@ static void machvirt_init(MachineState *machine)
                                      "secure-memory", &error_abort);
         }
 
-        object_property_set_bool(cpuobj, true, "realized", NULL);
+        object_property_set_bool(cpuobj, true, "realized", &error_fatal);
         object_unref(cpuobj);
     }
     fdt_add_timer_nodes(vms);