virt/coco/sev-guest: Check SEV_SNP attribute at probe time
authorBorislav Petkov (AMD) <bp@alien8.de>
Wed, 15 Feb 2023 10:01:42 +0000 (11:01 +0100)
committerBorislav Petkov (AMD) <bp@alien8.de>
Mon, 13 Mar 2023 10:20:20 +0000 (11:20 +0100)
No need to check it on every ioctl. And yes, this is a common SEV driver
but it does only SNP-specific operations currently. This can be
revisited later, when more use cases appear.

No functional changes.

Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Reviewed-by: Tom Lendacky <thomas.lendacky@amd.com>
Link: https://lore.kernel.org/r/20230307192449.24732-3-bp@alien8.de
arch/x86/kernel/sev.c
drivers/virt/coco/sev-guest/sev-guest.c

index 679026a640efd8e2e87a03d3b5e57cf18de1a6dd..c644c34372e8ccdfbe83d127f84324df8ea6b246 100644 (file)
@@ -2183,9 +2183,6 @@ int snp_issue_guest_request(u64 exit_code, struct snp_req_data *input, unsigned
        struct ghcb *ghcb;
        int ret;
 
-       if (!cc_platform_has(CC_ATTR_GUEST_SEV_SNP))
-               return -ENODEV;
-
        if (!fw_err)
                return -EINVAL;
 
index 7b4e9009f33559fe04a11c17af5433715b625893..ed5d6ae1a14476e722a965342d4daacdad0925c1 100644 (file)
@@ -703,6 +703,9 @@ static int __init sev_guest_probe(struct platform_device *pdev)
        void __iomem *mapping;
        int ret;
 
+       if (!cc_platform_has(CC_ATTR_GUEST_SEV_SNP))
+               return -ENODEV;
+
        if (!dev->platform_data)
                return -ENODEV;