From nobody Mon Sep 28 13:59:19 2026 Received: from mail-pl1-f172.google.com (mail-pl1-f172.google.com [209.85.214.172]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 75E06405C5C for ; Fri, 21 Aug 2026 05:34:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787290461; cv=none; b=HUfJOrGqtLWz/epNp1mk6ripPFmV+fgXaOJeGglgvehYUudkkjnAhY3VnfMBbAwCtvV6XL3I2cNHj3g4T7Oe1vmW1hUayM4abeMAnlxGsQcXbhypEaTOGCmgHUnMqQsWeSajBuB+e4qLcICSVISETZANzfd5CsX7ZF+6/8pe9gQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787290461; c=relaxed/simple; bh=J4/+EwMqudsyf0DDkT/pWlItb/9zqya89c+8c0bvln8=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=GkiLeyOgmtfnUH7xYCJl8ly9wQsbyxJL3jTe/81+utFC9m1Qur5EPxxk7bJEPrf/yHBO0b4uH3dHjEE1NVXp/gZl7x9Je6RAwbhCzgKhrfxgE0VYCxZZ1/tpr9eVY+geoj/wZeoe9HBUsE+LMQGBeFR6ZULhAMy3F3k8jy6wQ9s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=YbNAE095; arc=none smtp.client-ip=209.85.214.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="YbNAE095" Received: by mail-pl1-f172.google.com with SMTP id d9443c01a7336-2cace91f112so7065385ad.0 for ; Thu, 20 Aug 2026 22:34:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787290460; x=1787895260; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=aBx1RTNHaDs7onbvGTuP0aMAgK/JJJX4amMTE7ze3X0=; b=YbNAE095nmsBYd0EKw3AR1SaFqAEwY2QCznq86+J6QFGMObg8QD/MWhOa2McFHh3h9 pRDwmHTLFbROkq5giTQ71BjArRiu54UPgKrmJH9L3UFqgbQMvsKXGJS4EmFND1bqBtUc OV+uFRCiDI7knw84oK9JZem/EBexboyQUOrxa+a3J+Nz4JmeI+EPysKCr0KEPZUwH8Qj r63jvW95SrfQINFghhh6I0LKPSz2znzoGA9YGoAeBccHMkiWJecrB9qWKpGstgdhwCHR 0EwOzq6UwIbRUy/fz5etEQpPt9U04elAK1cn3Oa874H9UjzF4RX7BwVmBkJBroeY+asN tISQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787290460; x=1787895260; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=aBx1RTNHaDs7onbvGTuP0aMAgK/JJJX4amMTE7ze3X0=; b=qw5Mnn/kgURU4m2fUoG9KJaKj+xI0YehFivBFbsIWDBz+XWnO1roPwBPQyhBTMcvcN Xjg80Rk6ACO83STr2EdHWEtljPWm1jgVcqQbEMuRCvLpvfx93lmY+IKCqXCQqsQdCTRP KPMs2Lg7HNbAgORV3cG1U3xoqwkQZOHxOQpYeoNon87G+qJIxL57g8WnQxreIB71WGOo 8/836bAG1/UyUrwK8NOOYBf0YRrmPHUBowL0nwqTcgeGtmQu03yj+uVyhlx5ozJec95O cJUyMz12rMHEOy5Ozg2q3XAjFFbHNfQxundD4biDOvKgyDk7GLhfB+FGYmMTDRn4fKmN iY9g== X-Forwarded-Encrypted: i=1; AHgh+RoiLYUpiqVHMe+SjcDKKZwu8Ty6sEQemfjFp8LyblYD3C5enfupgcmyvs4V/6+GMfwz+QqfPAfX+QAe54k=@vger.kernel.org X-Gm-Message-State: AOJu0YzflZN1hOjzFxLgCUb5+ih3gUVaLmeM8Kczg70IFfdtwq1ZYQZp 6BbMczGWPVpksyqLx2g7U4o0UfMd24pPM0AqOLyBzSKNULw5bnp1ufJqGw7j/gai X-Gm-Gg: AR+sD11dAlLdtNVrU1gFND1XH58p4OeFVIhqsBBI7/buU1ijiyw2n7TJVAqghZSY/BO Mlr5OHXtQXjss2+GhECwNZhJQeE7+6ilMh+RZlQLWMFIS+N1YYCAwgjq+0N7Sr6bADmvMznIJB/ 9bUbQMtYbYWnsBZvjcuo0UC5HFIqh98L0gR3PDiSnOmmjk3htf6XDGpb1ozsmzAHGVwp/Y6qlCI b9v/yGkSHOUFS6jwHmrw+7HgLKjKKEceHPeez7iRLA6iubx4+4creN2c4s3MSazadv3Ym1Uz1lO yQX129YUXagQzZjvvgeacv/aB8cVuiL11frdJyDa3VdHnpHcy8a6uQmKQQUOCou76i1asMEQY3m vL7UtI1lcoGO0Cxr641H17rNTtNSKGgvfk/UPkj8oFyd3QrpQlcvDYjA5w/Zd7L7bP5xF9vW0zM 8t1MohBHbW+6gfs0I1G4rzPVKNz5PS65lb3XCcoPL+hgMpIIJpDLKUA0O/mtnQSXISq/rEHfWov w== X-Received: by 2002:a17:903:b07:b0:2d0:8b28:517c with SMTP id d9443c01a7336-2d64ade4afdmr74069425ad.3.1787290459610; Thu, 20 Aug 2026 22:34:19 -0700 (PDT) Received: from 10-86-27-207.ban-spse ([165.204.217.251]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-327bf10ca5csm22721939eec.17.2026.08.20.22.34.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Aug 2026 22:34:19 -0700 (PDT) From: Gokul K To: Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org Cc: "H. Peter Anvin" , Stefano Garzarella , Tom Lendacky , Jarkko Sakkinen , linux-coco@lists.linux.dev, linux-kernel@vger.kernel.org Subject: [PATCH] x86/sev: Do not fail SNP platform init if the vTPM cannot be registered Date: Fri, 21 Aug 2026 11:04:11 +0530 Message-ID: <20260821053411.1215497-1-gokul02k@gmail.com> X-Mailer: git-send-email 2.54.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The SVSM vTPM is optional: snp_svsm_vtpm_probe() returns false when no SVSM is present or when it does not implement TPM_SEND_COMMAND, and snp_init_platform_device() happily returns success in that case. When the vTPM *is* available but registering its platform device fails, the same function instead returns -ENODEV, after sev_guest_device has already been registered. That is worse than the absent-vTPM case in two ways: the sev-guest device is left registered while the initcall reports failure, and the error tells nobody anything, because the return value of a device_initcall is only ever traced, never acted upon. Log the failure and carry on, so an optional device that could not be registered no longer determines the fate of an unrelated one. The vTPM is simply absent, which is a state the guest already has to cope with. Fixes: e396dd85172c ("x86/sev: Register tpm-svsm platform device") Signed-off-by: Gokul K --- Compile-tested only. Reaching the failure path needs an SNP guest under an SVSM whose vTPM platform device fails to register, which in practice means -ENOMEM during initcalls; I have no way to reproduce that. Built at W=3D1 = with CONFIG_AMD_MEM_ENCRYPT=3Dy, and confirmed the file is not built with it =3D= n. arch/x86/coco/sev/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/coco/sev/core.c b/arch/x86/coco/sev/core.c index ecd77d3217f3..6501b6f7469a 100644 --- a/arch/x86/coco/sev/core.c +++ b/arch/x86/coco/sev/core.c @@ -1401,7 +1401,7 @@ static int __init snp_init_platform_device(void) =20 if (snp_svsm_vtpm_probe() && platform_device_register(&tpm_svsm_device)) - return -ENODEV; + pr_err("Failed to register the SVSM vTPM device\n"); =20 pr_info("SNP guest platform devices initialized.\n"); return 0; --=20 2.54.0