• Greg Kurz's avatar
    KVM: PPC: Book3S HV: XIVE: Set kvm->arch.xive when VPs are allocated · e7d71c94
    Greg Kurz authored
    If we cannot allocate the XIVE VPs in OPAL, the creation of a XIVE or
    XICS-on-XIVE device is aborted as expected, but we leave kvm->arch.xive
    set forever since the release method isn't called in this case. Any
    subsequent tentative to create a XIVE or XICS-on-XIVE for this VM will
    thus always fail (DoS). This is a problem for QEMU since it destroys
    and re-creates these devices when the VM is reset: the VM would be
    restricted to using the much slower emulated XIVE or XICS forever.
    
    As an alternative to adding rollback, do not assign kvm->arch.xive before
    making sure the XIVE VPs are allocated in OPAL.
    
    Cc: stable@vger.kernel.org # v5.2
    Fixes: 5422e951 ("KVM: PPC: Book3S HV: XIVE: Replace the 'destroy' method by a 'release' method")
    Signed-off-by: default avatarGreg Kurz <groug@kaod.org>
    Reviewed-by: default avatarCédric Le Goater <clg@kaod.org>
    Signed-off-by: default avatarPaul Mackerras <paulus@ozlabs.org>
    e7d71c94
book3s_xive.c 56.7 KB