summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Färber <afaerber@suse.de>2012-05-03 15:37:01 +0200
committerAndreas Färber <afaerber@suse.de>2012-10-30 22:38:37 +0100
commite9f9d6b16510776ae3d07e91b1cfb4d412701270 (patch)
tree4f2953f81ebf6a6eddb38631a4c1c84b35d8829e
parent60671e583c2bfb09746f59268fdc7d88eaa24deb (diff)
downloadqemu-e9f9d6b16510776ae3d07e91b1cfb4d412701270.tar.gz
target-i386: Pass X86CPU to cpu_x86_load_seg_cache_sipi()
Simplifies the call in apic_sipi() again and needed for moving halted field to CPUState. Signed-off-by: Andreas Färber <afaerber@suse.de> Reviewed-by: Igor Mammedov <imammedo@redhat.com>
-rw-r--r--hw/apic.c2
-rw-r--r--target-i386/cpu.h4
2 files changed, 4 insertions, 2 deletions
diff --git a/hw/apic.c b/hw/apic.c
index 99e84f948b..4bc14e0c36 100644
--- a/hw/apic.c
+++ b/hw/apic.c
@@ -487,7 +487,7 @@ void apic_sipi(DeviceState *d)
if (!s->wait_for_sipi)
return;
- cpu_x86_load_seg_cache_sipi(&s->cpu->env, s->sipi_vector);
+ cpu_x86_load_seg_cache_sipi(s->cpu, s->sipi_vector);
s->wait_for_sipi = 0;
}
diff --git a/target-i386/cpu.h b/target-i386/cpu.h
index de33303dea..d840914ebf 100644
--- a/target-i386/cpu.h
+++ b/target-i386/cpu.h
@@ -907,9 +907,11 @@ static inline void cpu_x86_load_seg_cache(CPUX86State *env,
}
}
-static inline void cpu_x86_load_seg_cache_sipi(CPUX86State *env,
+static inline void cpu_x86_load_seg_cache_sipi(X86CPU *cpu,
int sipi_vector)
{
+ CPUX86State *env = &cpu->env;
+
env->eip = 0;
cpu_x86_load_seg_cache(env, R_CS, sipi_vector << 8,
sipi_vector << 12,