diff options
author | Andreas Färber <afaerber@suse.de> | 2012-05-03 15:13:58 +0200 |
---|---|---|
committer | Andreas Färber <afaerber@suse.de> | 2012-10-31 04:12:23 +0100 |
commit | bee615d4b945e6d88dc37a39e40be9f105622f8d (patch) | |
tree | 1e5103afa586613fd9db6b9a154c4dbf29a06d77 /target-i386/kvm.c | |
parent | 3993c6bddf6da21977349ba1b14b86294ef4f7ff (diff) | |
download | qemu-bee615d4b945e6d88dc37a39e40be9f105622f8d.zip qemu-bee615d4b945e6d88dc37a39e40be9f105622f8d.tar.gz qemu-bee615d4b945e6d88dc37a39e40be9f105622f8d.tar.bz2 |
target-i386: Pass X86CPU to kvm_mce_inject()
Needed for changing cpu_x86_inject_mce() argument to X86CPU.
Signed-off-by: Andreas Färber <afaerber@suse.de>
[AF: Rebased onto hwaddr]
Diffstat (limited to 'target-i386/kvm.c')
-rw-r--r-- | target-i386/kvm.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/target-i386/kvm.c b/target-i386/kvm.c index a3491a4..5bf2f89c 100644 --- a/target-i386/kvm.c +++ b/target-i386/kvm.c @@ -229,8 +229,9 @@ static int kvm_get_mce_cap_supported(KVMState *s, uint64_t *mce_cap, return -ENOSYS; } -static void kvm_mce_inject(CPUX86State *env, hwaddr paddr, int code) +static void kvm_mce_inject(X86CPU *cpu, hwaddr paddr, int code) { + CPUX86State *env = &cpu->env; uint64_t status = MCI_STATUS_VAL | MCI_STATUS_UC | MCI_STATUS_EN | MCI_STATUS_MISCV | MCI_STATUS_ADDRV | MCI_STATUS_S; uint64_t mcg_status = MCG_STATUS_MCIP; @@ -256,6 +257,7 @@ static void hardware_memory_error(void) int kvm_arch_on_sigbus_vcpu(CPUX86State *env, int code, void *addr) { + X86CPU *cpu = x86_env_get_cpu(env); ram_addr_t ram_addr; hwaddr paddr; @@ -273,7 +275,7 @@ int kvm_arch_on_sigbus_vcpu(CPUX86State *env, int code, void *addr) } } kvm_hwpoison_page_add(ram_addr); - kvm_mce_inject(env, paddr, code); + kvm_mce_inject(cpu, paddr, code); } else { if (code == BUS_MCEERR_AO) { return 0; @@ -301,7 +303,7 @@ int kvm_arch_on_sigbus(int code, void *addr) return 0; } kvm_hwpoison_page_add(ram_addr); - kvm_mce_inject(first_cpu, paddr, code); + kvm_mce_inject(x86_env_get_cpu(first_cpu), paddr, code); } else { if (code == BUS_MCEERR_AO) { return 0; |