Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

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

Pull kvm fixes from Paolo Bonzini:
"Another latent bug related to PCID, an out-of-bounds access, and a
submaintainer change being finally made official"

* tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
MAINTAINERS: Add Paul Mackerras as maintainer for KVM/powerpc
KVM: nVMX: fix guest CR4 loading when emulating L2 to L1 exit
KVM: MMU: always terminate page walks at level 1
KVM: nVMX: update last_nonleaf_level when initializing nested EPT

+12 -10
+1 -1
MAINTAINERS
··· 7571 7571 F: arch/mips/kvm/ 7572 7572 7573 7573 KERNEL VIRTUAL MACHINE FOR POWERPC (KVM/powerpc) 7574 - M: Alexander Graf <agraf@suse.com> 7574 + M: Paul Mackerras <paulus@ozlabs.org> 7575 7575 L: kvm-ppc@vger.kernel.org 7576 7576 W: http://www.linux-kvm.org/ 7577 7577 T: git git://github.com/agraf/linux-2.6.git
+8 -7
arch/x86/kvm/mmu.c
··· 3974 3974 unsigned level, unsigned gpte) 3975 3975 { 3976 3976 /* 3977 - * PT_PAGE_TABLE_LEVEL always terminates. The RHS has bit 7 set 3978 - * iff level <= PT_PAGE_TABLE_LEVEL, which for our purpose means 3979 - * level == PT_PAGE_TABLE_LEVEL; set PT_PAGE_SIZE_MASK in gpte then. 3980 - */ 3981 - gpte |= level - PT_PAGE_TABLE_LEVEL - 1; 3982 - 3983 - /* 3984 3977 * The RHS has bit 7 set iff level < mmu->last_nonleaf_level. 3985 3978 * If it is clear, there are no large pages at this level, so clear 3986 3979 * PT_PAGE_SIZE_MASK in gpte if that is the case. 3987 3980 */ 3988 3981 gpte &= level - mmu->last_nonleaf_level; 3982 + 3983 + /* 3984 + * PT_PAGE_TABLE_LEVEL always terminates. The RHS has bit 7 set 3985 + * iff level <= PT_PAGE_TABLE_LEVEL, which for our purpose means 3986 + * level == PT_PAGE_TABLE_LEVEL; set PT_PAGE_SIZE_MASK in gpte then. 3987 + */ 3988 + gpte |= level - PT_PAGE_TABLE_LEVEL - 1; 3989 3989 3990 3990 return gpte & PT_PAGE_SIZE_MASK; 3991 3991 } ··· 4555 4555 4556 4556 update_permission_bitmask(vcpu, context, true); 4557 4557 update_pkru_bitmask(vcpu, context, true); 4558 + update_last_nonleaf_level(vcpu, context); 4558 4559 reset_rsvds_bits_mask_ept(vcpu, context, execonly); 4559 4560 reset_ept_shadow_zero_bits_mask(vcpu, context, execonly); 4560 4561 }
+2 -1
arch/x86/kvm/paging_tmpl.h
··· 334 334 --walker->level; 335 335 336 336 index = PT_INDEX(addr, walker->level); 337 - 338 337 table_gfn = gpte_to_gfn(pte); 339 338 offset = index * sizeof(pt_element_t); 340 339 pte_gpa = gfn_to_gpa(table_gfn) + offset; 340 + 341 + BUG_ON(walker->level < 1); 341 342 walker->table_gfn[walker->level - 1] = table_gfn; 342 343 walker->pte_gpa[walker->level - 1] = pte_gpa; 343 344
+1 -1
arch/x86/kvm/vmx.c
··· 11297 11297 11298 11298 /* Same as above - no reason to call set_cr4_guest_host_mask(). */ 11299 11299 vcpu->arch.cr4_guest_owned_bits = ~vmcs_readl(CR4_GUEST_HOST_MASK); 11300 - kvm_set_cr4(vcpu, vmcs12->host_cr4); 11300 + vmx_set_cr4(vcpu, vmcs12->host_cr4); 11301 11301 11302 11302 nested_ept_uninit_mmu_context(vcpu); 11303 11303