KVM: SVM: Skip VMSA init in sev_es_init_vmcb() if pointer is NULL
authorSean Christopherson <seanjc@google.com>
Fri, 25 Aug 2023 02:23:57 +0000 (19:23 -0700)
committerSean Christopherson <seanjc@google.com>
Fri, 25 Aug 2023 16:00:16 +0000 (09:00 -0700)
commit1952e74da96fb3e48b72a2d0ece78c688a5848c1
tree8a0849a84a10a81f96bf5507bdcb464b23d29754
parentf1187ef24eb8f36e8ad8106d22615ceddeea6097
KVM: SVM: Skip VMSA init in sev_es_init_vmcb() if pointer is NULL

Skip initializing the VMSA physical address in the VMCB if the VMSA is
NULL, which occurs during intrahost migration as KVM initializes the VMCB
before copying over state from the source to the destination (including
the VMSA and its physical address).

In normal builds, __pa() is just math, so the bug isn't fatal, but with
CONFIG_DEBUG_VIRTUAL=y, the validity of the virtual address is verified
and passing in NULL will make the kernel unhappy.

Fixes: 6defa24d3b12 ("KVM: SEV: Init target VMCBs in sev_migrate_from")
Cc: stable@vger.kernel.org
Cc: Peter Gonda <pgonda@google.com>
Reviewed-by: Peter Gonda <pgonda@google.com>
Reviewed-by: Pankaj Gupta <pankaj.gupta@amd.com>
Link: https://lore.kernel.org/r/20230825022357.2852133-3-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
arch/x86/kvm/svm/sev.c