On 21 November 2014 at 12:24, Christoffer Dall <christoffer.dall@xxxxxxxxxx> wrote: > On Mon, Nov 10, 2014 at 09:33:55AM +0100, Ard Biesheuvel wrote: >> Instead of using kvm_is_mmio_pfn() to decide whether a host region >> should be stage 2 mapped with device attributes, add a new static >> function kvm_is_device_pfn() that disregards RAM pages with the >> reserved bit set, as those should usually not be mapped as device >> memory. >> >> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx> >> --- >> arch/arm/kvm/mmu.c | 7 ++++++- >> 1 file changed, 6 insertions(+), 1 deletion(-) >> >> diff --git a/arch/arm/kvm/mmu.c b/arch/arm/kvm/mmu.c >> index 57a403a5c22b..b007438242e2 100644 >> --- a/arch/arm/kvm/mmu.c >> +++ b/arch/arm/kvm/mmu.c >> @@ -834,6 +834,11 @@ static bool kvm_is_write_fault(struct kvm_vcpu *vcpu) >> return kvm_vcpu_dabt_iswrite(vcpu); >> } >> >> +static bool kvm_is_device_pfn(unsigned long pfn) >> +{ >> + return !pfn_valid(pfn); >> +} >> + >> static int user_mem_abort(struct kvm_vcpu *vcpu, phys_addr_t fault_ipa, >> struct kvm_memory_slot *memslot, unsigned long hva, >> unsigned long fault_status) >> @@ -904,7 +909,7 @@ static int user_mem_abort(struct kvm_vcpu *vcpu, phys_addr_t fault_ipa, >> if (is_error_pfn(pfn)) >> return -EFAULT; >> >> - if (kvm_is_mmio_pfn(pfn)) >> + if (kvm_is_device_pfn(pfn)) >> mem_type = PAGE_S2_DEVICE; >> >> spin_lock(&kvm->mmu_lock); >> -- >> 1.8.3.2 >> > Acked-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> These 2 patches are now in 3.18-rc7, so they can be dropped from the kvmarm queue/next/etc branches Thanks, Ard. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html