On Fri, Apr 09, 2021, Tom Lendacky wrote: > From: Tom Lendacky <thomas.lendacky@xxxxxxx> > > Access to the GHCB is mainly in the VMGEXIT path and it is known that the > GHCB will be mapped. But there are two paths where it is possible the GHCB > might not be mapped. > > The sev_vcpu_deliver_sipi_vector() routine will update the GHCB to inform > the caller of the AP Reset Hold NAE event that a SIPI has been delivered. > However, if a SIPI is performed without a corresponding AP Reset Hold, > then the GHCB might not be mapped (depending on the previous VMEXIT), > which will result in a NULL pointer dereference. > > The svm_complete_emulated_msr() routine will update the GHCB to inform > the caller of a RDMSR/WRMSR operation about any errors. While it is likely > that the GHCB will be mapped in this situation, add a safe guard > in this path to be certain a NULL pointer dereference is not encountered. > > Fixes: f1c6366e3043 ("KVM: SVM: Add required changes to support intercepts under SEV-ES") > Fixes: 647daca25d24 ("KVM: SVM: Add support for booting APs in an SEV-ES guest") > Signed-off-by: Tom Lendacky <thomas.lendacky@xxxxxxx> > > --- Reviewed-by: Sean Christopherson <seanjc@xxxxxxxxxx>