• M
    KVM: arm64: Reject VM creation when the default IPA size is unsupported · 7d717558
    Marc Zyngier 提交于
    KVM/arm64 has forever used a 40bit default IPA space, partially
    due to its 32bit heritage (where the only choice is 40bit).
    
    However, there are implementations in the wild that have a *cough*
    much smaller *cough* IPA space, which leads to a misprogramming of
    VTCR_EL2, and a guest that is stuck on its first memory access
    if userspace dares to ask for the default IPA setting (which most
    VMMs do).
    
    Instead, blundly reject the creation of such VM, as we can't
    satisfy the requirements from userspace (with a one-off warning).
    Also clarify the boot warning, and document that the VM creation
    will fail when an unsupported IPA size is provided.
    
    Although this is an ABI change, it doesn't really change much
    for userspace:
    
    - the guest couldn't run before this change, but no error was
      returned. At least userspace knows what is happening.
    
    - a memory slot that was accepted because it did fit the default
      IPA space now doesn't even get a chance to be registered.
    
    The other thing that is left doing is to convince userspace to
    actually use the IPA space setting instead of relying on the
    antiquated default.
    
    Fixes: 233a7cb2 ("kvm: arm64: Allow tuning the physical address size for VM")
    Signed-off-by: NMarc Zyngier <maz@kernel.org>
    Cc: stable@vger.kernel.org
    Reviewed-by: NAndrew Jones <drjones@redhat.com>
    Reviewed-by: NEric Auger <eric.auger@redhat.com>
    Link: https://lore.kernel.org/r/20210311100016.3830038-2-maz@kernel.org
    7d717558
api.rst 222.0 KB