Commit 9bf8d8bc authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm

Pull KVM fixes from Paolo Bonzini:
 "Two fixes for this merge window, and an unrelated bugfix for a host
  hang"

* tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
  KVM: ioapic: break infinite recursion on lazy EOI
  KVM: vmx: rename pi_init to avoid conflict with paride
  KVM: x86/mmu: Avoid modulo operator on 64-bit value to fix i386 build
parents c51ae124 77377064
...@@ -197,12 +197,9 @@ static void ioapic_lazy_update_eoi(struct kvm_ioapic *ioapic, int irq) ...@@ -197,12 +197,9 @@ static void ioapic_lazy_update_eoi(struct kvm_ioapic *ioapic, int irq)
/* /*
* If no longer has pending EOI in LAPICs, update * If no longer has pending EOI in LAPICs, update
* EOI for this vetor. * EOI for this vector.
*/ */
rtc_irq_eoi(ioapic, vcpu, entry->fields.vector); rtc_irq_eoi(ioapic, vcpu, entry->fields.vector);
kvm_ioapic_update_eoi_one(vcpu, ioapic,
entry->fields.trig_mode,
irq);
break; break;
} }
} }
......
...@@ -209,7 +209,7 @@ static void __handle_changed_spte(struct kvm *kvm, int as_id, gfn_t gfn, ...@@ -209,7 +209,7 @@ static void __handle_changed_spte(struct kvm *kvm, int as_id, gfn_t gfn,
WARN_ON(level > PT64_ROOT_MAX_LEVEL); WARN_ON(level > PT64_ROOT_MAX_LEVEL);
WARN_ON(level < PG_LEVEL_4K); WARN_ON(level < PG_LEVEL_4K);
WARN_ON(gfn % KVM_PAGES_PER_HPAGE(level)); WARN_ON(gfn & (KVM_PAGES_PER_HPAGE(level) - 1));
/* /*
* If this warning were to trigger it would indicate that there was a * If this warning were to trigger it would indicate that there was a
......
...@@ -222,7 +222,7 @@ void pi_wakeup_handler(void) ...@@ -222,7 +222,7 @@ void pi_wakeup_handler(void)
spin_unlock(&per_cpu(blocked_vcpu_on_cpu_lock, cpu)); spin_unlock(&per_cpu(blocked_vcpu_on_cpu_lock, cpu));
} }
void __init pi_init(int cpu) void __init pi_init_cpu(int cpu)
{ {
INIT_LIST_HEAD(&per_cpu(blocked_vcpu_on_cpu, cpu)); INIT_LIST_HEAD(&per_cpu(blocked_vcpu_on_cpu, cpu));
spin_lock_init(&per_cpu(blocked_vcpu_on_cpu_lock, cpu)); spin_lock_init(&per_cpu(blocked_vcpu_on_cpu_lock, cpu));
......
...@@ -91,9 +91,9 @@ void vmx_vcpu_pi_put(struct kvm_vcpu *vcpu); ...@@ -91,9 +91,9 @@ void vmx_vcpu_pi_put(struct kvm_vcpu *vcpu);
int pi_pre_block(struct kvm_vcpu *vcpu); int pi_pre_block(struct kvm_vcpu *vcpu);
void pi_post_block(struct kvm_vcpu *vcpu); void pi_post_block(struct kvm_vcpu *vcpu);
void pi_wakeup_handler(void); void pi_wakeup_handler(void);
void __init pi_init(int cpu); void __init pi_init_cpu(int cpu);
bool pi_has_pending_interrupt(struct kvm_vcpu *vcpu); bool pi_has_pending_interrupt(struct kvm_vcpu *vcpu);
int pi_update_irte(struct kvm *kvm, unsigned int host_irq, uint32_t guest_irq, int pi_update_irte(struct kvm *kvm, unsigned int host_irq, uint32_t guest_irq,
bool set); bool set);
#endif /* __KVM_X86_VMX_POSTED_INTR_H */ #endif /* __KVM_X86_VMX_POSTED_INTR_H */
\ No newline at end of file
...@@ -8004,7 +8004,7 @@ static int __init vmx_init(void) ...@@ -8004,7 +8004,7 @@ static int __init vmx_init(void)
for_each_possible_cpu(cpu) { for_each_possible_cpu(cpu) {
INIT_LIST_HEAD(&per_cpu(loaded_vmcss_on_cpu, cpu)); INIT_LIST_HEAD(&per_cpu(loaded_vmcss_on_cpu, cpu));
pi_init(cpu); pi_init_cpu(cpu);
} }
#ifdef CONFIG_KEXEC_CORE #ifdef CONFIG_KEXEC_CORE
......
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