KVM: Remove exception_injected() callback.
It always return false for VMX/SVM now. Signed-off-by: Gleb Natapov <gleb@redhat.com> Signed-off-by: Avi Kivity <avi@redhat.com>
This commit is contained in:
parent
9222be18f7
commit
1cb948ae86
|
@ -516,7 +516,6 @@ struct kvm_x86_ops {
|
||||||
void (*set_irq)(struct kvm_vcpu *vcpu, int vec);
|
void (*set_irq)(struct kvm_vcpu *vcpu, int vec);
|
||||||
void (*queue_exception)(struct kvm_vcpu *vcpu, unsigned nr,
|
void (*queue_exception)(struct kvm_vcpu *vcpu, unsigned nr,
|
||||||
bool has_error_code, u32 error_code);
|
bool has_error_code, u32 error_code);
|
||||||
bool (*exception_injected)(struct kvm_vcpu *vcpu);
|
|
||||||
void (*inject_pending_irq)(struct kvm_vcpu *vcpu, struct kvm_run *run);
|
void (*inject_pending_irq)(struct kvm_vcpu *vcpu, struct kvm_run *run);
|
||||||
void (*inject_pending_vectors)(struct kvm_vcpu *vcpu,
|
void (*inject_pending_vectors)(struct kvm_vcpu *vcpu,
|
||||||
struct kvm_run *run);
|
struct kvm_run *run);
|
||||||
|
|
|
@ -196,11 +196,6 @@ static void svm_queue_exception(struct kvm_vcpu *vcpu, unsigned nr,
|
||||||
svm->vmcb->control.event_inj_err = error_code;
|
svm->vmcb->control.event_inj_err = error_code;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool svm_exception_injected(struct kvm_vcpu *vcpu)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int is_external_interrupt(u32 info)
|
static int is_external_interrupt(u32 info)
|
||||||
{
|
{
|
||||||
info &= SVM_EVTINJ_TYPE_MASK | SVM_EVTINJ_VALID;
|
info &= SVM_EVTINJ_TYPE_MASK | SVM_EVTINJ_VALID;
|
||||||
|
@ -2659,7 +2654,6 @@ static struct kvm_x86_ops svm_x86_ops = {
|
||||||
.get_irq = svm_get_irq,
|
.get_irq = svm_get_irq,
|
||||||
.set_irq = svm_set_irq,
|
.set_irq = svm_set_irq,
|
||||||
.queue_exception = svm_queue_exception,
|
.queue_exception = svm_queue_exception,
|
||||||
.exception_injected = svm_exception_injected,
|
|
||||||
.inject_pending_irq = svm_intr_assist,
|
.inject_pending_irq = svm_intr_assist,
|
||||||
.inject_pending_vectors = svm_intr_assist,
|
.inject_pending_vectors = svm_intr_assist,
|
||||||
.interrupt_allowed = svm_interrupt_allowed,
|
.interrupt_allowed = svm_interrupt_allowed,
|
||||||
|
|
|
@ -789,11 +789,6 @@ static void vmx_queue_exception(struct kvm_vcpu *vcpu, unsigned nr,
|
||||||
vmcs_write32(VM_ENTRY_INTR_INFO_FIELD, intr_info);
|
vmcs_write32(VM_ENTRY_INTR_INFO_FIELD, intr_info);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool vmx_exception_injected(struct kvm_vcpu *vcpu)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Swap MSR entry in host/guest MSR entry array.
|
* Swap MSR entry in host/guest MSR entry array.
|
||||||
*/
|
*/
|
||||||
|
@ -3697,7 +3692,6 @@ static struct kvm_x86_ops vmx_x86_ops = {
|
||||||
.get_irq = vmx_get_irq,
|
.get_irq = vmx_get_irq,
|
||||||
.set_irq = vmx_inject_irq,
|
.set_irq = vmx_inject_irq,
|
||||||
.queue_exception = vmx_queue_exception,
|
.queue_exception = vmx_queue_exception,
|
||||||
.exception_injected = vmx_exception_injected,
|
|
||||||
.inject_pending_irq = vmx_intr_assist,
|
.inject_pending_irq = vmx_intr_assist,
|
||||||
.inject_pending_vectors = vmx_intr_assist,
|
.inject_pending_vectors = vmx_intr_assist,
|
||||||
.interrupt_allowed = vmx_interrupt_allowed,
|
.interrupt_allowed = vmx_interrupt_allowed,
|
||||||
|
|
|
@ -3237,8 +3237,6 @@ static int vcpu_enter_guest(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run)
|
||||||
profile_hit(KVM_PROFILING, (void *)rip);
|
profile_hit(KVM_PROFILING, (void *)rip);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (vcpu->arch.exception.pending && kvm_x86_ops->exception_injected(vcpu))
|
|
||||||
vcpu->arch.exception.pending = false;
|
|
||||||
|
|
||||||
kvm_lapic_sync_from_vapic(vcpu);
|
kvm_lapic_sync_from_vapic(vcpu);
|
||||||
|
|
||||||
|
|
Reference in New Issue