Hi Itaru, On Wed, Jun 29, 2016 at 03:22:45PM +0900, Itaru Kitayama wrote: > 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@xxxxxxxx> > Cc: Marc Zyngier <marc.zyngier@xxxxxxx> > > > 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, Doesn't this change carry the risk of KVM mapping a page (larger than 4K) containing other things than the GICV interface into the guest, potentially breaking isolation of the VM from host hardware resources? -Christoffer _______________________________________________ kvmarm mailing list kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/mailman/listinfo/kvmarm