Merge git://git.kernel.org/pub/scm/virt/kvm/kvm
Pull two KVM fixes from Gleb Natapov. * git://git.kernel.org/pub/scm/virt/kvm/kvm: KVM: VMX: do not check bit 12 of EPT violation exit qualification when undefined ARM: kvm: rename cpu_reset to avoid name clash
This commit is contained in:
commit
77c4ad8e23
2 changed files with 6 additions and 4 deletions
|
@ -58,14 +58,14 @@ static const struct kvm_irq_level a15_vtimer_irq = {
|
||||||
*/
|
*/
|
||||||
int kvm_reset_vcpu(struct kvm_vcpu *vcpu)
|
int kvm_reset_vcpu(struct kvm_vcpu *vcpu)
|
||||||
{
|
{
|
||||||
struct kvm_regs *cpu_reset;
|
struct kvm_regs *reset_regs;
|
||||||
const struct kvm_irq_level *cpu_vtimer_irq;
|
const struct kvm_irq_level *cpu_vtimer_irq;
|
||||||
|
|
||||||
switch (vcpu->arch.target) {
|
switch (vcpu->arch.target) {
|
||||||
case KVM_ARM_TARGET_CORTEX_A15:
|
case KVM_ARM_TARGET_CORTEX_A15:
|
||||||
if (vcpu->vcpu_id > a15_max_cpu_idx)
|
if (vcpu->vcpu_id > a15_max_cpu_idx)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
cpu_reset = &a15_regs_reset;
|
reset_regs = &a15_regs_reset;
|
||||||
vcpu->arch.midr = read_cpuid_id();
|
vcpu->arch.midr = read_cpuid_id();
|
||||||
cpu_vtimer_irq = &a15_vtimer_irq;
|
cpu_vtimer_irq = &a15_vtimer_irq;
|
||||||
break;
|
break;
|
||||||
|
@ -74,7 +74,7 @@ int kvm_reset_vcpu(struct kvm_vcpu *vcpu)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Reset core registers */
|
/* Reset core registers */
|
||||||
memcpy(&vcpu->arch.regs, cpu_reset, sizeof(vcpu->arch.regs));
|
memcpy(&vcpu->arch.regs, reset_regs, sizeof(vcpu->arch.regs));
|
||||||
|
|
||||||
/* Reset CP15 registers */
|
/* Reset CP15 registers */
|
||||||
kvm_reset_coprocs(vcpu);
|
kvm_reset_coprocs(vcpu);
|
||||||
|
|
|
@ -5345,7 +5345,9 @@ static int handle_ept_violation(struct kvm_vcpu *vcpu)
|
||||||
* There are errata that may cause this bit to not be set:
|
* There are errata that may cause this bit to not be set:
|
||||||
* AAK134, BY25.
|
* AAK134, BY25.
|
||||||
*/
|
*/
|
||||||
if (exit_qualification & INTR_INFO_UNBLOCK_NMI)
|
if (!(to_vmx(vcpu)->idt_vectoring_info & VECTORING_INFO_VALID_MASK) &&
|
||||||
|
cpu_has_virtual_nmis() &&
|
||||||
|
(exit_qualification & INTR_INFO_UNBLOCK_NMI))
|
||||||
vmcs_set_bits(GUEST_INTERRUPTIBILITY_INFO, GUEST_INTR_STATE_NMI);
|
vmcs_set_bits(GUEST_INTERRUPTIBILITY_INFO, GUEST_INTR_STATE_NMI);
|
||||||
|
|
||||||
gpa = vmcs_read64(GUEST_PHYSICAL_ADDRESS);
|
gpa = vmcs_read64(GUEST_PHYSICAL_ADDRESS);
|
||||||
|
|
Loading…
Reference in a new issue