From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail.8bytes.org (mail.8bytes.org [85.214.250.239]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 0583D3B6347 for ; Tue, 23 Jun 2026 07:38:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=85.214.250.239 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782200313; cv=none; b=sjm7QtfWoCviSp8Fj53V/FX5CTL0eBLY0p0iKDvsMoQGtd7FFa7xu4KEw0G2NTLv70t0UNVaL1aqsPRBjhgRPwZBkfE/HcIcJ6PY3KMTGY9iQ6gYMYVf2dTVEFDmYjZ7IDO45Bn6kH8G+KdQNcvUKRlykbt+3MApj7HdxBYUxQE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782200313; c=relaxed/simple; bh=VvbMJxwJ5qxRdpc/Fl43drMCN+hDi4wUkW+sNIEkSJQ=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=ZdW4TzeTQgEdW0woJl34FGOuhJ579eD54F47NhQk53/zup7VLlVxz3ThYGRL4+eDxf5qc8aAfk2+a4dPr3iAwk18ETaushbn4b7zZEcv4x25f2u8fe48mjwfush4RFetdOZ/8HDrsXR3ZGFryyCWBnuA5Y2PPjZwVfgfe2PX45g= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=8bytes.org; spf=pass smtp.mailfrom=8bytes.org; arc=none smtp.client-ip=85.214.250.239 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=8bytes.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=8bytes.org Received: from io.fritz.box (p200300f6af4fc50087ccd40e34e7ac7f.dip0.t-ipconnect.de [IPv6:2003:f6:af4f:c500:87cc:d40e:34e7:ac7f]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mail.8bytes.org (Postfix) with ESMTPSA id 24495203B8B; Tue, 23 Jun 2026 09:38:25 +0200 (CEST) From: =?UTF-8?q?J=C3=B6rg=20R=C3=B6del?= To: x86@kernel.org Cc: Tom Lendacky , Michael Roth , linux-kernel@vger.kernel.org, Joerg Roedel Subject: [PATCH] x86/coco/sev: Make SEV_STATUS available via SYSFS Date: Tue, 23 Jun 2026 09:38:20 +0200 Message-ID: <20260623073820.1479769-1-joro@8bytes.org> X-Mailer: git-send-email 2.53.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: Joerg Roedel Current user-space tooling which needs access to the SEV_STATUS MSR is using the MSR module. The use of this module poses a security risk in any trusted execution environment and is generally discouraged. Instead, provide an file in SYSFS in the /sys/devices/system/cpu/sev/ directory to provide the value of the SEV_STATUS MSR to user-space. Signed-off-by: Joerg Roedel --- Documentation/ABI/testing/sysfs-devices-system-cpu | 4 ++++ arch/x86/coco/sev/core.c | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/Documentation/ABI/testing/sysfs-devices-system-cpu b/Documentation/ABI/testing/sysfs-devices-system-cpu index 82d10d556cc8..f7908ade4be8 100644 --- a/Documentation/ABI/testing/sysfs-devices-system-cpu +++ b/Documentation/ABI/testing/sysfs-devices-system-cpu @@ -690,6 +690,7 @@ Description: Umwait control What: /sys/devices/system/cpu/sev /sys/devices/system/cpu/sev/vmpl + /sys/devices/system/cpu/sev/sev_status Date: May 2024 Contact: Linux kernel mailing list Description: Secure Encrypted Virtualization (SEV) information @@ -699,6 +700,9 @@ Description: Secure Encrypted Virtualization (SEV) information vmpl: Reports the Virtual Machine Privilege Level (VMPL) at which the SEV-SNP guest is running. + sev_status: Reports the value of the SEV_STATUS MSR which + enumerates the enabled features of an SEV-SNP + environment. What: /sys/devices/system/cpu/svm Date: August 2019 diff --git a/arch/x86/coco/sev/core.c b/arch/x86/coco/sev/core.c index 7ed3da998489..557c1f230cb9 100644 --- a/arch/x86/coco/sev/core.c +++ b/arch/x86/coco/sev/core.c @@ -1435,10 +1435,18 @@ static ssize_t vmpl_show(struct kobject *kobj, return sysfs_emit(buf, "%d\n", snp_vmpl); } +static ssize_t sev_status_show(struct kobject *kobj, + struct kobj_attribute *attr, char *buf) +{ + return sysfs_emit(buf, "0x%llx\n", sev_status); +} + static struct kobj_attribute vmpl_attr = __ATTR_RO(vmpl); +static struct kobj_attribute sev_status_attr = __ATTR_RO(sev_status); static struct attribute *vmpl_attrs[] = { &vmpl_attr.attr, + &sev_status_attr.attr, NULL }; -- 2.53.0