KVM: x86: consolidate "has lapic" checks into irq.c
Do for kvm_cpu_has_pending_timer and kvm_inject_pending_timer_irqs what the other irq.c routines have been doing. Reviewed-by: Radim Krčmář <rkrcmar@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
f8543d6a97
commit
1e3161b414
@ -33,7 +33,10 @@
|
|||||||
*/
|
*/
|
||||||
int kvm_cpu_has_pending_timer(struct kvm_vcpu *vcpu)
|
int kvm_cpu_has_pending_timer(struct kvm_vcpu *vcpu)
|
||||||
{
|
{
|
||||||
return apic_has_pending_timer(vcpu);
|
if (lapic_in_kernel(vcpu))
|
||||||
|
return apic_has_pending_timer(vcpu);
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(kvm_cpu_has_pending_timer);
|
EXPORT_SYMBOL(kvm_cpu_has_pending_timer);
|
||||||
|
|
||||||
@ -137,8 +140,8 @@ EXPORT_SYMBOL_GPL(kvm_cpu_get_interrupt);
|
|||||||
|
|
||||||
void kvm_inject_pending_timer_irqs(struct kvm_vcpu *vcpu)
|
void kvm_inject_pending_timer_irqs(struct kvm_vcpu *vcpu)
|
||||||
{
|
{
|
||||||
kvm_inject_apic_timer_irqs(vcpu);
|
if (lapic_in_kernel(vcpu))
|
||||||
/* TODO: PIT, RTC etc. */
|
kvm_inject_apic_timer_irqs(vcpu);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(kvm_inject_pending_timer_irqs);
|
EXPORT_SYMBOL_GPL(kvm_inject_pending_timer_irqs);
|
||||||
|
|
||||||
|
@ -1801,8 +1801,7 @@ int apic_has_pending_timer(struct kvm_vcpu *vcpu)
|
|||||||
{
|
{
|
||||||
struct kvm_lapic *apic = vcpu->arch.apic;
|
struct kvm_lapic *apic = vcpu->arch.apic;
|
||||||
|
|
||||||
if (kvm_vcpu_has_lapic(vcpu) && apic_enabled(apic) &&
|
if (apic_enabled(apic) && apic_lvt_enabled(apic, APIC_LVTT))
|
||||||
apic_lvt_enabled(apic, APIC_LVTT))
|
|
||||||
return atomic_read(&apic->lapic_timer.pending);
|
return atomic_read(&apic->lapic_timer.pending);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@ -1927,9 +1926,6 @@ void kvm_inject_apic_timer_irqs(struct kvm_vcpu *vcpu)
|
|||||||
{
|
{
|
||||||
struct kvm_lapic *apic = vcpu->arch.apic;
|
struct kvm_lapic *apic = vcpu->arch.apic;
|
||||||
|
|
||||||
if (!kvm_vcpu_has_lapic(vcpu))
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (atomic_read(&apic->lapic_timer.pending) > 0) {
|
if (atomic_read(&apic->lapic_timer.pending) > 0) {
|
||||||
kvm_apic_local_deliver(apic, APIC_LVTT);
|
kvm_apic_local_deliver(apic, APIC_LVTT);
|
||||||
if (apic_lvtt_tscdeadline(apic))
|
if (apic_lvtt_tscdeadline(apic))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user