Patchwork [RFC,19/19] HACK: late CPU class initialization

login
register
mail settings
Submitter Eduardo Habkost
Date Aug. 3, 2012, 2:59 a.m.
Message ID <1343962766-22024-20-git-send-email-ehabkost@redhat.com>
Download mbox | patch
Permalink /patch/174869/
State New
Headers show

Comments

Eduardo Habkost - Aug. 3, 2012, 2:59 a.m.
This is just a hack to make the experimental CPU class code work without
removing the cpudef support.

After we remove the cpudef support, we can simply use type_init() again,
and register only the builtin CPU models as CPU classes.

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
 target-i386/cpu.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

Patch

diff --git a/target-i386/cpu.c b/target-i386/cpu.c
index df4fb1f..8e978bd 100644
--- a/target-i386/cpu.c
+++ b/target-i386/cpu.c
@@ -1575,6 +1575,8 @@  void cpu_clear_apic_feature(CPUX86State *env)
 
 #endif /* !CONFIG_USER_ONLY */
 
+static void x86_cpu_register_types(void);
+
 /* register "cpudef" models defined in configuration file.  Here we first
  * preload any built-in definitions
  */
@@ -1605,6 +1607,8 @@  void x86_cpudef_setup(void)
 #if !defined(CONFIG_USER_ONLY)
     qemu_opts_foreach(qemu_find_opts("cpudef"), cpudef_register, NULL, 0);
 #endif
+
+    x86_cpu_register_types();
 }
 
 static void get_cpuid_vendor(CPUX86State *env, uint32_t *ebx,
@@ -2123,4 +2127,5 @@  static void x86_cpu_register_types(void)
     x86_cpu_register_class("host", &host_def);
 }
 
-type_init(x86_cpu_register_types)
+//HACK: the function is being called from x86_cpudef_setup()
+//type_init(x86_cpu_register_types)