Commit f8543d6a authored by Paolo Bonzini's avatar Paolo Bonzini

KVM: APIC: remove unnecessary double checks on APIC existence

Usually the in-kernel APIC's existence is checked in the caller.  Do not
bother checking it again in lapic.c.
Reviewed-by: default avatarRadim Krčmář <rkrcmar@redhat.com>
Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
parent b6ce9780
...@@ -475,18 +475,12 @@ static inline void apic_clear_isr(int vec, struct kvm_lapic *apic) ...@@ -475,18 +475,12 @@ static inline void apic_clear_isr(int vec, struct kvm_lapic *apic)
int kvm_lapic_find_highest_irr(struct kvm_vcpu *vcpu) int kvm_lapic_find_highest_irr(struct kvm_vcpu *vcpu)
{ {
int highest_irr;
/* This may race with setting of irr in __apic_accept_irq() and /* This may race with setting of irr in __apic_accept_irq() and
* value returned may be wrong, but kvm_vcpu_kick() in __apic_accept_irq * value returned may be wrong, but kvm_vcpu_kick() in __apic_accept_irq
* will cause vmexit immediately and the value will be recalculated * will cause vmexit immediately and the value will be recalculated
* on the next vmentry. * on the next vmentry.
*/ */
if (!kvm_vcpu_has_lapic(vcpu)) return apic_find_highest_irr(vcpu->arch.apic);
return 0;
highest_irr = apic_find_highest_irr(vcpu->arch.apic);
return highest_irr;
} }
static int __apic_accept_irq(struct kvm_lapic *apic, int delivery_mode, static int __apic_accept_irq(struct kvm_lapic *apic, int delivery_mode,
...@@ -1601,7 +1595,6 @@ static int apic_mmio_write(struct kvm_vcpu *vcpu, struct kvm_io_device *this, ...@@ -1601,7 +1595,6 @@ static int apic_mmio_write(struct kvm_vcpu *vcpu, struct kvm_io_device *this,
void kvm_lapic_set_eoi(struct kvm_vcpu *vcpu) void kvm_lapic_set_eoi(struct kvm_vcpu *vcpu)
{ {
if (kvm_vcpu_has_lapic(vcpu))
apic_reg_write(vcpu->arch.apic, APIC_EOI, 0); apic_reg_write(vcpu->arch.apic, APIC_EOI, 0);
} }
EXPORT_SYMBOL_GPL(kvm_lapic_set_eoi); EXPORT_SYMBOL_GPL(kvm_lapic_set_eoi);
...@@ -1676,9 +1669,6 @@ void kvm_lapic_set_tpr(struct kvm_vcpu *vcpu, unsigned long cr8) ...@@ -1676,9 +1669,6 @@ void kvm_lapic_set_tpr(struct kvm_vcpu *vcpu, unsigned long cr8)
{ {
struct kvm_lapic *apic = vcpu->arch.apic; struct kvm_lapic *apic = vcpu->arch.apic;
if (!kvm_vcpu_has_lapic(vcpu))
return;
apic_set_tpr(apic, ((cr8 & 0x0f) << 4) apic_set_tpr(apic, ((cr8 & 0x0f) << 4)
| (kvm_apic_get_reg(apic, APIC_TASKPRI) & 4)); | (kvm_apic_get_reg(apic, APIC_TASKPRI) & 4));
} }
...@@ -1687,9 +1677,6 @@ u64 kvm_lapic_get_cr8(struct kvm_vcpu *vcpu) ...@@ -1687,9 +1677,6 @@ u64 kvm_lapic_get_cr8(struct kvm_vcpu *vcpu)
{ {
u64 tpr; u64 tpr;
if (!kvm_vcpu_has_lapic(vcpu))
return 0;
tpr = (u64) kvm_apic_get_reg(vcpu->arch.apic, APIC_TASKPRI); tpr = (u64) kvm_apic_get_reg(vcpu->arch.apic, APIC_TASKPRI);
return (tpr & 0xf0) >> 4; return (tpr & 0xf0) >> 4;
...@@ -1912,7 +1899,7 @@ int kvm_apic_has_interrupt(struct kvm_vcpu *vcpu) ...@@ -1912,7 +1899,7 @@ int kvm_apic_has_interrupt(struct kvm_vcpu *vcpu)
struct kvm_lapic *apic = vcpu->arch.apic; struct kvm_lapic *apic = vcpu->arch.apic;
int highest_irr; int highest_irr;
if (!kvm_vcpu_has_lapic(vcpu) || !apic_enabled(apic)) if (!apic_enabled(apic))
return -1; return -1;
apic_update_ppr(apic); apic_update_ppr(apic);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment