diff mbox

[GIT,PULL,2/9] arm/arm64: kvm: drop inappropriate use of kvm_is_mmio_pfn()

Message ID 1418124368-28418-3-git-send-email-christoffer.dall@linaro.org
State Accepted
Commit 07a9748c78cfc39b54f06125a216b67b9c8f09ed
Headers show

Commit Message

Christoffer Dall Dec. 9, 2014, 11:26 a.m. UTC
From: Ard Biesheuvel <ard.biesheuvel@linaro.org>

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@linaro.org>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
---
 arch/arm/kvm/mmu.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

Comments

Ard Biesheuvel Dec. 9, 2014, 12:29 p.m. UTC | #1
On 9 December 2014 at 12:26, Christoffer Dall
<christoffer.dall@linaro.org> wrote:
> From: Ard Biesheuvel <ard.biesheuvel@linaro.org>
>
> 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@linaro.org>
> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>

As I mentioned last week, this patch (and the next one) are already in
3.18 so unless there is some policy I am unaware of, these do not have
to be submitted again.
Christoffer Dall Dec. 9, 2014, 12:38 p.m. UTC | #2
On Tue, Dec 09, 2014 at 01:29:52PM +0100, Ard Biesheuvel wrote:
> On 9 December 2014 at 12:26, Christoffer Dall
> <christoffer.dall@linaro.org> wrote:
> > From: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> >
> > 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@linaro.org>
> > Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
> 
> As I mentioned last week, this patch (and the next one) are already in
> 3.18 so unless there is some policy I am unaware of, these do not have
> to be submitted again.
> 
They're in kvmarm/next, which is a stable branch (doesn't rebase) so our
only choice would be to revert this commit specifically in kvmarm/next
before sending the pull request.  Since that would be more confusing
than help anything, and Paolo said to just include the duplicate commit
in the pull request, here it is.

As we can see in linux-next, it's not really a problem.

-Christoffer
Ard Biesheuvel Dec. 9, 2014, 12:38 p.m. UTC | #3
On 9 December 2014 at 13:38, Christoffer Dall
<christoffer.dall@linaro.org> wrote:
> On Tue, Dec 09, 2014 at 01:29:52PM +0100, Ard Biesheuvel wrote:
>> On 9 December 2014 at 12:26, Christoffer Dall
>> <christoffer.dall@linaro.org> wrote:
>> > From: Ard Biesheuvel <ard.biesheuvel@linaro.org>
>> >
>> > 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@linaro.org>
>> > Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
>>
>> As I mentioned last week, this patch (and the next one) are already in
>> 3.18 so unless there is some policy I am unaware of, these do not have
>> to be submitted again.
>>
> They're in kvmarm/next, which is a stable branch (doesn't rebase) so our
> only choice would be to revert this commit specifically in kvmarm/next
> before sending the pull request.  Since that would be more confusing
> than help anything, and Paolo said to just include the duplicate commit
> in the pull request, here it is.
>
> As we can see in linux-next, it's not really a problem.
>

OK, thanks for the explanation.
diff mbox

Patch

diff --git a/arch/arm/kvm/mmu.c b/arch/arm/kvm/mmu.c
index 57a403a..b007438 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);