• Ashish Kalra's avatar
    KVM: SVM: Fix SEV SEND_START session length & SEND_UPDATE_DATA query length... · 4f13d471
    Ashish Kalra authored
    KVM: SVM: Fix SEV SEND_START session length & SEND_UPDATE_DATA query length after commit 238eca82
    
    Commit 238eca82 ("KVM: SVM: Allocate SEV command structures on local stack")
    uses the local stack to allocate the structures used to communicate with the PSP,
    which were earlier being kzalloced. This breaks SEV live migration for
    computing the SEND_START session length and SEND_UPDATE_DATA query length as
    session_len and trans_len and hdr_len fields are not zeroed respectively for
    the above commands before issuing the SEV Firmware API call, hence the
    firmware returns incorrect session length and update data header or trans length.
    
    Also the SEV Firmware API returns SEV_RET_INVALID_LEN firmware error
    for these length query API calls, and the return value and the
    firmware error needs to be passed to the userspace as it is, so
    need to remove the return check in the KVM code.
    Signed-off-by: default avatarAshish Kalra <ashish.kalra@amd.com>
    Message-Id: <20210607061532.27459-1-Ashish.Kalra@amd.com>
    Fixes: 238eca82 ("KVM: SVM: Allocate SEV command structures on local stack")
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    4f13d471
sev.c 65.2 KB