[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RFC PATCH kernel 13/17] x86/sev: Pass HV features to sev-guest device via platform data
- To: <x86@xxxxxxxxxx>
- From: Alexey Kardashevskiy <aik@xxxxxxx>
- Date: Wed, 16 Sep 2026 21:51:53 +1000
- Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0)
- Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=dA9IhLE51D9NYfND88bqQhl20dii5Ckm+YGWHKm39+w=; b=Zq0s1qpS2T2DBAuVG1kAZEK2avJylW2WibH619MTsPJcnmCtsy1p2I1ivYzWdNAhUd5neykHRhgupx2s/Y/JvUhW8/IYB16p0wipHiXVW+9efx5+IxkXcL2HtMZ1R8vdNDDp6ZzjPSoXYbwziqKk1+1JJOG2NhcAatzs/Zg/c3y02nnp1NjdPLp2UJAcxfugXovube426MkdH85A+meTpKT/FjzKXkiDvbMhda9Bgkqb/IrtggNSTMnaQAMb1vdTZlFzcOAJUdISU6JFE1SCbpzE9wik9Usi7b5LGY2ahxnVtfJunrT8l9Ypo3DQBW1JfoVcadkhf+whT9WGqV7WZQ==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=RysGZKMHs1epu977SrAA1JJSXiIjQsbitUAUzo0og631gjBBRGn2BjxwjMCWcLdW9BsWVbm0Un2UWcNH5lE4IaOSolB+EkLLL8y2QC6InyHSCVH8JjNHWIpV/7BUTovPbEJnD7mVpQRQNLEHc8NGPHKTkozR+hormCPiq7qcpKgUF9ntpa0wTdJrnvqkVfL2LQAUffw4syw5+2lkQTDAErjXLyOf0hMFBwydmsV820C42XeGwt5YwL64AxB5caus6zS5j6nidzX9qAtb/5kccD2ijd+JMZACa8CX7RLp2vr6/GItAGOH+HS4AqSNrMwA18UolsJq2Z4l4JM/wgsoiw==
- Authentication-results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=amd.com header.i="@amd.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
- Cc: <linux-kernel@xxxxxxxxxxxxxxx>, <kvm@xxxxxxxxxxxxxxx>, <linux-crypto@xxxxxxxxxxxxxxx>, <linux-pci@xxxxxxxxxxxxxxx>, Thomas Gleixner <tglx@xxxxxxxxxx>, Ingo Molnar <mingo@xxxxxxxxxx>, Borislav Petkov <bp@xxxxxxxxx>, Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>, "H. Peter Anvin" <hpa@xxxxxxxxx>, Sean Christopherson <seanjc@xxxxxxxxxx>, Paolo Bonzini <pbonzini@xxxxxxxxxx>, Andy Lutomirski <luto@xxxxxxxxxx>, Peter Zijlstra <peterz@xxxxxxxxxxxxx>, Ashish Kalra <ashish.kalra@xxxxxxx>, Tom Lendacky <thomas.lendacky@xxxxxxx>, Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>, "David S. Miller" <davem@xxxxxxxxxxxxx>, Bjorn Helgaas <bhelgaas@xxxxxxxxxx>, Juergen Gross <jgross@xxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Oleksandr Tyshchenko <oleksandr_tyshchenko@xxxxxxxx>, Marek Szyprowski <m.szyprowski@xxxxxxxxxxx>, Robin Murphy <robin.murphy@xxxxxxx>, "Andrew Morton" <akpm@xxxxxxxxxxxxxxxxxxxx>, David Hildenbrand <david@xxxxxxxxxx>, Lorenzo Stoakes <ljs@xxxxxxxxxx>, "Liam R. Howlett" <liam@xxxxxxxxxxxxx>, Vlastimil Babka <vbabka@xxxxxxxxxx>, Mike Rapoport <rppt@xxxxxxxxxx>, "Suren Baghdasaryan" <surenb@xxxxxxxxxx>, Michal Hocko <mhocko@xxxxxxxx>, "Catalin Marinas" <catalin.marinas@xxxxxxx>, Jini Susan George <jinisusan.george@xxxxxxx>, Kees Cook <kees@xxxxxxxxxx>, Michael Ellerman <mpe@xxxxxxxxxxxxxx>, Nikunj A Dadhania <nikunj@xxxxxxx>, Ard Biesheuvel <ardb@xxxxxxxxxx>, Eric Biggers <ebiggers@xxxxxxxxxx>, Kim Phillips <kim.phillips@xxxxxxx>, Joerg Roedel <jroedel@xxxxxxx>, Ethan Nelson-Moore <enelsonmoore@xxxxxxxxx>, "Tycho Andersen (AMD)" <tycho@xxxxxxxxxx>, "Liam Merwick" <liam.merwick@xxxxxxxxxx>, Michael Kerrisk <mtk.manpages@xxxxxxxxx>, Suresh Siddha <suresh.b.siddha@xxxxxxxxx>, Xiaotian Feng <dfeng@xxxxxxxxxx>, Venkatesh Pallipadi <venkatesh.pallipadi@xxxxxxxxx>, Andi Kleen <ak@xxxxxxxxxxxxxxx>, Kiryl Shutsemau <kas@xxxxxxxxxx>, Tony Luck <tony.luck@xxxxxxxxx>, Jason Gunthorpe <jgg@xxxxxxxx>, Lu Baolu <baolu.lu@xxxxxxxxxxxxxxx>, Xu Yilun <yilun.xu@xxxxxxxxxxxxxxx>, Carlos López <clopez@xxxxxxx>, Jonathan Cameron <jic23@xxxxxxxxxx>, Jori Koolstra <jkoolstra@xxxxxxxxx>, Thomas Weißschuh <thomas.weissschuh@xxxxxxxxxxxxx>, "Aneesh Kumar K.V (Arm)" <aneesh.kumar@xxxxxxxxxx>, Ian Campbell <ian.campbell@xxxxxxxxxx>, Jeremy Fitzhardinge <jeremy.fitzhardinge@xxxxxxxxxx>, Petr Tesarik <ptesarik@xxxxxxxx>, "David Howells" <dhowells@xxxxxxxxxx>, Haavard Skinnemoen <hskinnemoen@xxxxxxxxx>, Kenji Kaneshige <kaneshige.kenji@xxxxxxxxxxxxxx>, Ilpo Järvinen <ilpo.jarvinen@xxxxxxxxxxxxxxx>, "Christian Marangi" <ansuelsmth@xxxxxxxxx>, Dave Jiang <dave.jiang@xxxxxxxxx>, "Michael Kelley" <mhklinux@xxxxxxxxxxx>, Ilias Stamatis <ilstam@xxxxxxxxxx>, "Sumanth Korikkar" <sumanthk@xxxxxxxxxxxxx>, Simona Vetter <simona.vetter@xxxxxxxx>, Toshi Kani <toshi.kani@xxxxxx>, Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>, Vinod Koul <vkoul@xxxxxxxxxx>, Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>, Arnd Bergmann <arnd@xxxxxxxx>, Anshuman Khandual <anshuman.khandual@xxxxxxx>, Kefeng Wang <wangkefeng.wang@xxxxxxxxxx>, "Palmer Dabbelt" <palmerdabbelt@xxxxxxxxxx>, <linux-coco@xxxxxxxxxxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxxx>, <iommu@xxxxxxxxxxxxxxx>, <linux-mm@xxxxxxxxx>, Alexey Kardashevskiy <aik@xxxxxxx>, <aik@xxxxxxxxx>, Santosh Shukla <santosh.shukla@xxxxxxx>, "Pratik R . Sampat" <prsampat@xxxxxxx>, Scott Soule Cheloha <scott.cheloha@xxxxxxx>, Ackerley Tng <ackerleytng@xxxxxxxxxx>, Fuad Tabba <tabba@xxxxxxxxxx>
- Delivery-date: Wed, 16 Sep 2026 12:01:13 +0000
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
The SEV HV advertises supported options via GHCB, the guest stores
bitmask in the SEV core.
The sev-guest device is a user visible platform device (/dev/sev-guest)
which provides the interface to communicate with the HV via GHCB.
It may choose to limit the functionality depending on what is available.
The first user is going to be SEV-TIO which is going to trigger creation
of "tsm" folders in the PCI sysfs but only if GHCB advertised such
support.
This should cause no behavioural change.
Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxx>
---
arch/x86/coco/sev/core.c | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/arch/x86/coco/sev/core.c b/arch/x86/coco/sev/core.c
index cc292d7c6fd1..5b912f42f493 100644
--- a/arch/x86/coco/sev/core.c
+++ b/arch/x86/coco/sev/core.c
@@ -1381,11 +1381,6 @@ static int snp_issue_guest_request(struct snp_guest_req
*req)
return ret;
}
-static struct platform_device sev_guest_device = {
- .name = "sev-guest",
- .id = -1,
-};
-
static struct platform_device tpm_svsm_device = {
.name = "tpm-svsm",
.id = -1,
@@ -1393,10 +1388,17 @@ static struct platform_device tpm_svsm_device = {
static int __init snp_init_platform_device(void)
{
+ struct platform_device *dev;
+
if (!cc_platform_has(CC_ATTR_GUEST_SEV_SNP))
return -ENODEV;
- if (platform_device_register(&sev_guest_device))
+ dev = platform_device_register_data(NULL, "sev-guest", -1,
+ &sev_hv_features,
+ sizeof(sev_hv_features));
+ if (IS_ERR(dev))
+ return PTR_ERR(dev);
+ if (!dev)
return -ENODEV;
if (snp_svsm_vtpm_probe() &&
--
2.55.0
|