Re: [PATCH 4/5] kvm/sev: mask off firmware unsupported vm types
From: Sean Christopherson
Date: Thu Mar 12 2026 - 15:57:57 EST
KVM: SEV:
On Tue, Mar 03, 2026, Tycho Andersen wrote:
> From: "Tycho Andersen (AMD)" <tycho@xxxxxxxxxx>
>
> In some configurations not all VM types are supported by the firmware.
> Reflect this information in the supported_vm_types that KVM exports.
>
> Link: https://lore.kernel.org/all/aZyLIWtffvEnmtYh@xxxxxxxxxx/
> Suggested-by: Sean Christopherson <seanjc@xxxxxxxxxx>
> Signed-off-by: Tycho Andersen (AMD) <tycho@xxxxxxxxxx>
> ---
> arch/x86/kvm/svm/sev.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/arch/x86/kvm/svm/sev.c b/arch/x86/kvm/svm/sev.c
> index f941d48626d3..eeae39af63a9 100644
> --- a/arch/x86/kvm/svm/sev.c
> +++ b/arch/x86/kvm/svm/sev.c
> @@ -2976,6 +2976,8 @@ void __init sev_set_cpu_caps(void)
> supported_vm_types |= BIT(KVM_X86_SNP_VM);
> }
>
> + supported_vm_types &= sev_firmware_supported_vm_types();
> +
> kvm_caps.supported_vm_types |= supported_vm_types;
To save one whole line (two, counting whitespace!), and to guard against future
changes, I vote for:
kvm_caps.supported_vm_types |= supported_vm_types &
sev_firmware_supported_vm_types();
or if parentheses would make it clearer:
kvm_caps.supported_vm_types |= (supported_vm_types &
sev_firmware_supported_vm_types());
I spent a silly amount of time fiddling with the code to try and avoid the local
variable, and failed.