Thread (13 messages) flat view 13 messages, 4 authors, 2016-08-18

Re: [PATCH BACKPORT 3.17-4.4 2/4] MIPS: KVM: Add missing gfn range check

From: Levin, Alexander <hidden>
Date: 2016-08-18 11:46:42
Also in: kvm

On 08/18/2016 05:05 AM, James Hogan wrote:
commit 8985d50382359e5bf118fdbefc859d0dbf6cebc7 upstream.

kvm_mips_handle_mapped_seg_tlb_fault() calculates the guest frame number
based on the guest TLB EntryLo values, however it is not range checked
to ensure it lies within the guest_pmap. If the physical memory the
guest refers to is out of range then dump the guest TLB and emit an
internal error.

Fixes: 858dd5d45733 ("KVM/MIPS32: MMU/TLB operations for the Guest.")
Signed-off-by: James Hogan <redacted>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: "Radim Krčmář" <redacted>
Cc: Ralf Baechle <redacted>
Cc: linux-mips@linux-mips.org
Cc: kvm@vger.kernel.org
Signed-off-by: Radim Krčmář <redacted>
[james.hogan@imgtec.com: Backport to v3.17.y - v4.4.y]
Signed-off-by: James Hogan <redacted>
Hey James,

Thanks for the backport!

Applying this one seems to fail with:

$ git apply --reject [PATCH BACKPORT 3.17-4.4 1_4] MIPS: KVM: Fix mapped
fault broken commpage handling - James Hogan [off-list ref] -
2016-08-18 0505.eml
Checking patch arch/mips/kvm/tlb.c...
error: while searching for:
	unsigned long entryhi = 0, entrylo0 = 0, entrylo1 = 0;
	struct kvm *kvm = vcpu->kvm;
	pfn_t pfn0, pfn1;
	long tlb_lo[2];

	tlb_lo[0] = tlb->tlb_lo0;

error: patch failed: arch/mips/kvm/tlb.c:361
error: while searching for:
			VPN2_MASK & (PAGE_MASK << 1)))
		tlb_lo[(KVM_GUEST_COMMPAGE_ADDR >> PAGE_SHIFT) & 1] = 0;

	if (kvm_mips_map_page(kvm, mips3_tlbpfn_to_paddr(tlb_lo[0])
				   >> PAGE_SHIFT) < 0)
		return -1;

	if (kvm_mips_map_page(kvm, mips3_tlbpfn_to_paddr(tlb_lo[1])
				   >> PAGE_SHIFT) < 0)
		return -1;

	pfn0 = kvm->arch.guest_pmap[mips3_tlbpfn_to_paddr(tlb_lo[0])
				    >> PAGE_SHIFT];
	pfn1 = kvm->arch.guest_pmap[mips3_tlbpfn_to_paddr(tlb_lo[1])
				    >> PAGE_SHIFT];

	if (hpa0)
		*hpa0 = pfn0 << PAGE_SHIFT;

error: patch failed: arch/mips/kvm/tlb.c:374
Applying patch arch/mips/kvm/tlb.c with 2 rejects...
Rejected hunk #1.
Rejected hunk #2.


Thanks,
Sasha
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help