mirror of
https://github.com/torvalds/linux.git
synced 2024-11-11 22:51:42 +00:00
KVM: Clear exception queue before emulating an instruction
If we're emulating an instruction, either it will succeed, in which case any previously queued exception will be spurious, or we will requeue the same exception. Signed-off-by: Avi Kivity <avi@qumranet.com>
This commit is contained in:
parent
668f612fa0
commit
26eef70c3e
@ -20,6 +20,7 @@
|
||||
#include "i8254.h"
|
||||
#include "tss.h"
|
||||
#include "kvm_cache_regs.h"
|
||||
#include "x86.h"
|
||||
|
||||
#include <linux/clocksource.h>
|
||||
#include <linux/kvm.h>
|
||||
@ -2121,6 +2122,7 @@ int emulate_instruction(struct kvm_vcpu *vcpu,
|
||||
int r;
|
||||
struct decode_cache *c;
|
||||
|
||||
kvm_clear_exception_queue(vcpu);
|
||||
vcpu->arch.mmio_fault_cr2 = cr2;
|
||||
/*
|
||||
* TODO: fix x86_emulate.c to use guest_read/write_register
|
||||
|
11
arch/x86/kvm/x86.h
Normal file
11
arch/x86/kvm/x86.h
Normal file
@ -0,0 +1,11 @@
|
||||
#ifndef ARCH_X86_KVM_X86_H
|
||||
#define ARCH_X86_KVM_X86_H
|
||||
|
||||
#include <linux/kvm_host.h>
|
||||
|
||||
static inline void kvm_clear_exception_queue(struct kvm_vcpu *vcpu)
|
||||
{
|
||||
vcpu->arch.exception.pending = false;
|
||||
}
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue
Block a user