monitor: fix crash for platforms without a CPU 0
authorDavid Gibson <david@gibson.dropbear.id.au>
Wed, 21 Sep 2016 05:29:26 +0000 (15:29 +1000)
committerDavid Gibson <david@gibson.dropbear.id.au>
Fri, 23 Sep 2016 02:39:07 +0000 (12:39 +1000)
Now that we allow CPU hot unplug on a few platforms, we can end up in a
situation where we don't have a CPU with index 0.  Or at least we could,
if we didn't have code to explicitly prohibit unplug of CPU 0.

Longer term we want to allow CPU 0 unplug, this patch is an early step in
allowing this, by removing an assumption in the monitor code that CPU 0
always exists.

Signed-off-by: Cédric Le Goater <clg@kaod.org>
[dwg: Rewrote commit message to better explain background]
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eduardo Habkost <ehabkost@redhat.com>
Reviewed-by: Luiz Capitulino <lcapitulino@redhat.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
monitor.c

index 8bb8bbfd15103663f4ba8c7185350c5c64609d5d..83c4edfce08edd51a845eee4d1262c1118cfb9f9 100644 (file)
--- a/monitor.c
+++ b/monitor.c
@@ -1025,7 +1025,7 @@ int monitor_set_cpu(int cpu_index)
 CPUState *mon_get_cpu(void)
 {
     if (!cur_mon->mon_cpu) {
-        monitor_set_cpu(0);
+        monitor_set_cpu(first_cpu->cpu_index);
     }
     cpu_synchronize_state(cur_mon->mon_cpu);
     return cur_mon->mon_cpu;