• Mingwei Zhang's avatar
    KVM: SVM: fix missing sev_decommission in sev_receive_start · f1815e0a
    Mingwei Zhang authored
    DECOMMISSION the current SEV context if binding an ASID fails after
    RECEIVE_START.  Per AMD's SEV API, RECEIVE_START generates a new guest
    context and thus needs to be paired with DECOMMISSION:
    
         The RECEIVE_START command is the only command other than the LAUNCH_START
         command that generates a new guest context and guest handle.
    
    The missing DECOMMISSION can result in subsequent SEV launch failures,
    as the firmware leaks memory and might not able to allocate more SEV
    guest contexts in the future.
    
    Note, LAUNCH_START suffered the same bug, but was previously fixed by
    commit 934002cd ("KVM: SVM: Call SEV Guest Decommission if ASID
    binding fails").
    
    Cc: Alper Gun <alpergun@google.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Brijesh Singh <brijesh.singh@amd.com>
    Cc: David Rienjes <rientjes@google.com>
    Cc: Marc Orr <marcorr@google.com>
    Cc: John Allen <john.allen@amd.com>
    Cc: Peter Gonda <pgonda@google.com>
    Cc: Sean Christopherson <seanjc@google.com>
    Cc: Tom Lendacky <thomas.lendacky@amd.com>
    Cc: Vipin Sharma <vipinsh@google.com>
    Cc: stable@vger.kernel.org
    Reviewed-by: default avatarMarc Orr <marcorr@google.com>
    Acked-by: default avatarBrijesh Singh <brijesh.singh@amd.com>
    Fixes: af43cbbf ("KVM: SVM: Add support for KVM_SEV_RECEIVE_START command")
    Signed-off-by: default avatarMingwei Zhang <mizhang@google.com>
    Reviewed-by: default avatarSean Christopherson <seanjc@google.com>
    Message-Id: <20210912181815.3899316-1-mizhang@google.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    f1815e0a
sev.c 65.7 KB