Patchwork pc: push setting default cpu_model down a level

login
register
mail settings
Submitter Alex Williamson
Date June 1, 2010, 11:03 p.m.
Message ID <20100601230235.14944.69041.stgit@localhost.localdomain>
Download mbox | patch
Permalink /patch/54333/
State New
Headers show

Comments

Alex Williamson - June 1, 2010, 11:03 p.m.
Not that CPU hotplug currently works, but if you make the mistake of
trying it on a VM started without specifying a -cpu value, you hit
a segfault from trying to strdup(NULL) in cpu_x86_find_by_name().

Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
---

 hw/pc.c |   16 ++++++++--------
 1 files changed, 8 insertions(+), 8 deletions(-)
Marcelo Tosatti - June 2, 2010, 4:46 p.m.
On Tue, Jun 01, 2010 at 05:03:00PM -0600, Alex Williamson wrote:
> Not that CPU hotplug currently works, but if you make the mistake of
> trying it on a VM started without specifying a -cpu value, you hit
> a segfault from trying to strdup(NULL) in cpu_x86_find_by_name().
> 
> Signed-off-by: Alex Williamson <alex.williamson@redhat.com>

Applied, thanks.

Patch

diff --git a/hw/pc.c b/hw/pc.c
index 9b85c42..a79586c 100644
--- a/hw/pc.c
+++ b/hw/pc.c
@@ -771,6 +771,14 @@  static CPUState *pc_new_cpu(const char *cpu_model)
 {
     CPUState *env;
 
+    if (cpu_model == NULL) {
+#ifdef TARGET_X86_64
+        cpu_model = "qemu64";
+#else
+        cpu_model = "qemu32";
+#endif
+    }
+
     env = cpu_init(cpu_model);
     if (!env) {
         fprintf(stderr, "Unable to find x86 CPU definition\n");
@@ -791,14 +799,6 @@  void pc_cpus_init(const char *cpu_model)
     int i;
 
     /* init CPUs */
-    if (cpu_model == NULL) {
-#ifdef TARGET_X86_64
-        cpu_model = "qemu64";
-#else
-        cpu_model = "qemu32";
-#endif
-    }
-
     for(i = 0; i < smp_cpus; i++) {
         pc_new_cpu(cpu_model);
     }