Skip to content

Commit aa94779

Browse files
committed
KVM: x86: Fold kvm_get_apic_interrupt() into kvm_cpu_get_interrupt()
Fold kvm_get_apic_interrupt() into kvm_cpu_get_interrupt() now that nVMX essentially open codes kvm_get_apic_interrupt() in order to correctly emulate nested posted interrupts. Opportunistically stop exporting kvm_cpu_get_interrupt(), as the aforementioned nVMX flow was the only user in vendor code. Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Sean Christopherson <[email protected]>
1 parent 6e0b456 commit aa94779

File tree

3 files changed

+5
-13
lines changed

3 files changed

+5
-13
lines changed

arch/x86/kvm/irq.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -142,9 +142,12 @@ int kvm_cpu_get_interrupt(struct kvm_vcpu *v)
142142
if (vector != -1)
143143
return vector; /* PIC */
144144

145-
return kvm_get_apic_interrupt(v); /* APIC */
145+
vector = kvm_apic_has_interrupt(v); /* APIC */
146+
if (vector != -1)
147+
kvm_apic_ack_interrupt(v, vector);
148+
149+
return vector;
146150
}
147-
EXPORT_SYMBOL_GPL(kvm_cpu_get_interrupt);
148151

149152
void kvm_inject_pending_timer_irqs(struct kvm_vcpu *vcpu)
150153
{

arch/x86/kvm/lapic.c

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2959,16 +2959,6 @@ void kvm_apic_ack_interrupt(struct kvm_vcpu *vcpu, int vector)
29592959
}
29602960
EXPORT_SYMBOL_GPL(kvm_apic_ack_interrupt);
29612961

2962-
int kvm_get_apic_interrupt(struct kvm_vcpu *vcpu)
2963-
{
2964-
int vector = kvm_apic_has_interrupt(vcpu);
2965-
2966-
if (vector != -1)
2967-
kvm_apic_ack_interrupt(vcpu, vector);
2968-
2969-
return vector;
2970-
}
2971-
29722962
static int kvm_apic_state_fixup(struct kvm_vcpu *vcpu,
29732963
struct kvm_lapic_state *s, bool set)
29742964
{

arch/x86/kvm/lapic.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,6 @@ void kvm_free_lapic(struct kvm_vcpu *vcpu);
9090
int kvm_apic_has_interrupt(struct kvm_vcpu *vcpu);
9191
void kvm_apic_ack_interrupt(struct kvm_vcpu *vcpu, int vector);
9292
int kvm_apic_accept_pic_intr(struct kvm_vcpu *vcpu);
93-
int kvm_get_apic_interrupt(struct kvm_vcpu *vcpu);
9493
int kvm_apic_accept_events(struct kvm_vcpu *vcpu);
9594
void kvm_lapic_reset(struct kvm_vcpu *vcpu, bool init_event);
9695
u64 kvm_lapic_get_cr8(struct kvm_vcpu *vcpu);

0 commit comments

Comments
 (0)