Linux KVM/arm64 development list
 help / color / mirror / Atom feed
* [PATCH] KVM: arm64: Check GICV address is placed at a 4Kb boundary
@ 2016-06-29  6:22 Itaru Kitayama
  2016-06-29 12:43 ` Christoffer Dall
  0 siblings, 1 reply; 3+ messages in thread
From: Itaru Kitayama @ 2016-06-29  6:22 UTC (permalink / raw)
  To: kvmarm@lists.cs.columbia.edu; +Cc: Marc Zyngier

Make sure GICV physical address is placed at a 4Kb boundary as spec 
says, not host kernel's page boundary. This prevents !4Kb kernels from 
returning an ENXIO prematurely during the KVM init phase at boot.
Tested on Overdrive 3000 with 64Kb page-size kernel with ACPI.

Signed-off-by: Itaru Kitayama <itaru.kitayama@riken.jp>
Cc: Marc Zyngier <marc.zyngier@arm.com>


diff --git a/virt/kvm/arm/vgic/vgic-v2.c b/virt/kvm/arm/vgic/vgic-v2.c
index e31405e..0123e5d 100644
--- a/virt/kvm/arm/vgic/vgic-v2.c
+++ b/virt/kvm/arm/vgic/vgic-v2.c
@@ -309,17 +309,15 @@ int vgic_v2_probe(const struct gic_kvm_info *info)
                 return -ENXIO;
         }

-       if (!PAGE_ALIGNED(info->vcpu.start)) {
-               kvm_err("GICV physical address 0x%llx not page aligned\n",
+       if (!IS_ALIGNED(info->vcpu.start, SZ_4K)) {
+               kvm_err("GICV physical address 0x%llx not 4Kb aligned\n",
                         (unsigned long long)info->vcpu.start);
                 return -ENXIO;
         }

-       if (!PAGE_ALIGNED(resource_size(&info->vcpu))) {
-               kvm_err("GICV size 0x%llx not a multiple of page size 
0x%lx\n",
-                       (unsigned long long)resource_size(&info->vcpu),
+       if (!PAGE_ALIGNED(resource_size(&info->vcpu)))
+               kvm_warn("GICV size 0x%llx not a multiple of page size 
0x%lx, system may be unsafe\n", (unsigned long 
long)resource_size(&info->vcpu),
                         PAGE_SIZE);
-               return -ENXIO;
         }

         kvm_vgic_global_state.vctrl_base = ioremap(info->vctrl.start,

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2016-06-30  3:18 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-06-29  6:22 [PATCH] KVM: arm64: Check GICV address is placed at a 4Kb boundary Itaru Kitayama
2016-06-29 12:43 ` Christoffer Dall
2016-06-30  3:23   ` Itaru Kitayama

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox