Two fixes for the pull request, and an unrelated bugfix for
a host hang. -----BEGIN PGP SIGNATURE----- iQFIBAABCAAyFiEE8TM4V0tmI4mGbHaCv/vSX3jHroMFAl+T6RoUHHBib256aW5p QHJlZGhhdC5jb20ACgkQv/vSX3jHroMx2gf+PjoeMjLKtstdKDdiLFV46X7YdYKz sUoDhpSbiLpEus5BF6OauUWwKgB7GcsoDUnLgjN5jqkAQzoFm0YOcI2GlXS999SL 5QIg6Vw5WF8X/7EVt6gxzC6KcWjbQvv38R/Ktd/0sMqRBPiZG7kVcWeXlopb9DaQ Rdgg0hNVpgDiTNrBNl5RnM7Wz/SrOZmwaotW1LcII+BkCnj9Av77v77TxN9YuvG4 o+GMMQseFAzDjQ+jHZkHuBmPRy5dQB9ywzEIrUCubqhT04sWbQ6DhGfx45a0IgsY 33iT28omYdMVlRd/i3KcHQ86JJSo5g7pOqLwGd1L9HjNTS5VmQ8HXNJWBA== =ECL9 -----END PGP SIGNATURE----- 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
This commit is contained in:
Коммит
9bf8d8bcf3
|
@ -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,
|
||||||
|
|
||||||
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)
|
||||||
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);
|
||||||
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 */
|
||||||
|
|
|
@ -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
|
||||||
|
|
Загрузка…
Ссылка в новой задаче