From: Dan Williams Date: Tue, 13 May 2025 05:12:44 +0000 (-0700) Subject: Merge branch 'for-6.16/tsm-mr' into tsm-next X-Git-Tag: v6.16-rc1~119^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=15ff5d0e90bb044b94d9a4ac57276829861a954d;p=thirdparty%2Fkernel%2Flinux.git Merge branch 'for-6.16/tsm-mr' into tsm-next Merge measurement-register infrastructure for v6.16. Resolve conflicts with the establishment of drivers/virt/coco/guest/ for cross-vendor common TSM functionality. Address a mis-merge with a fixup from Lukas: Link: http://lore.kernel.org/20250509134031.70559-1-lukas.bulwahn@redhat.com --- 15ff5d0e90bb044b94d9a4ac57276829861a954d diff --cc Documentation/driver-api/coco/measurement-registers.rst index 0000000000000,cef85945a9a74..962a44efa2c02 mode 000000,100644..100644 --- a/Documentation/driver-api/coco/measurement-registers.rst +++ b/Documentation/driver-api/coco/measurement-registers.rst @@@ -1,0 -1,12 +1,12 @@@ + .. SPDX-License-Identifier: GPL-2.0 + .. include:: + + ===================== + Measurement Registers + ===================== + + .. kernel-doc:: include/linux/tsm-mr.h + :internal: + -.. kernel-doc:: drivers/virt/coco/tsm-mr.c ++.. kernel-doc:: drivers/virt/coco/guest/tsm-mr.c + :export: diff --cc MAINTAINERS index 0a1ca9233ccf8,912e16ace0b4a..10d6d99b8dc7e --- a/MAINTAINERS +++ b/MAINTAINERS @@@ -24555,13 -24643,15 +24643,15 @@@ M: David Lechner L: linux-coco@lists.linux.dev S: Maintained -F: Documentation/ABI/testing/configfs-tsm +F: Documentation/ABI/testing/configfs-tsm-report + F: Documentation/driver-api/coco/ -F: drivers/virt/coco/tsm*.c +F: drivers/virt/coco/guest/ - F: include/linux/tsm.h + F: include/linux/tsm*.h -F: samples/tsm/ ++F: samples/tsm-mr/ TRUSTED SERVICES TEE DRIVER M: Balint Dobszay diff --cc drivers/virt/coco/Makefile index 885c9ef4e9fc9,eb6ec5c1d2e17..f918bbb617375 --- a/drivers/virt/coco/Makefile +++ b/drivers/virt/coco/Makefile @@@ -7,4 -9,3 +7,4 @@@ obj-$(CONFIG_ARM_PKVM_GUEST) += pkvm-gu obj-$(CONFIG_SEV_GUEST) += sev-guest/ obj-$(CONFIG_INTEL_TDX_GUEST) += tdx-guest/ obj-$(CONFIG_ARM_CCA_GUEST) += arm-cca-guest/ - obj-$(CONFIG_TSM_REPORTS) += guest/ ++obj-$(CONFIG_TSM_GUEST) += guest/ diff --cc drivers/virt/coco/guest/Kconfig index ed9bafbdd8548,0000000000000..3d5e1d05bf343 mode 100644,000000..100644 --- a/drivers/virt/coco/guest/Kconfig +++ b/drivers/virt/coco/guest/Kconfig @@@ -1,7 -1,0 +1,17 @@@ +# SPDX-License-Identifier: GPL-2.0-only +# +# Confidential computing shared guest collateral +# ++config TSM_GUEST ++ bool ++ +config TSM_REPORTS ++ select TSM_GUEST + select CONFIGFS_FS + tristate ++ ++config TSM_MEASUREMENTS ++ select TSM_GUEST ++ select CRYPTO_HASH_INFO ++ select CRYPTO ++ bool diff --cc drivers/virt/coco/guest/Makefile index b3b217af77cf5,0000000000000..9ec4860bd213a mode 100644,000000..100644 --- a/drivers/virt/coco/guest/Makefile +++ b/drivers/virt/coco/guest/Makefile @@@ -1,3 -1,0 +1,4 @@@ +# SPDX-License-Identifier: GPL-2.0 +obj-$(CONFIG_TSM_REPORTS) += tsm_report.o +tsm_report-y := report.o ++obj-$(CONFIG_TSM_MEASUREMENTS) += tsm-mr.o diff --cc drivers/virt/coco/guest/tsm-mr.c index 0000000000000,1f0c43a516fb8..1f0c43a516fb8 mode 000000,100644..100644 --- a/drivers/virt/coco/guest/tsm-mr.c +++ b/drivers/virt/coco/guest/tsm-mr.c diff --cc drivers/virt/coco/tdx-guest/tdx-guest.c index bd043838ab2e1,60466c439a4bc..4e239ec960c9b --- a/drivers/virt/coco/tdx-guest/tdx-guest.c +++ b/drivers/virt/coco/tdx-guest/tdx-guest.c @@@ -157,11 -262,11 +262,11 @@@ static int wait_for_quote_completion(st return (i == timeout) ? -ETIMEDOUT : 0; } - static int tdx_report_new(struct tsm_report *report, void *data) + static int tdx_report_new_locked(struct tsm_report *report, void *data) { - u8 *buf, *reportdata = NULL, *tdreport = NULL; + u8 *buf; struct tdx_quote_buf *quote_buf = quote_data; - struct tsm_desc *desc = &report->desc; + struct tsm_report_desc *desc = &report->desc; int ret; u64 err; @@@ -339,9 -429,10 +429,10 @@@ module_init(tdx_guest_init) static void __exit tdx_guest_exit(void) { - tsm_unregister(&tdx_tsm_ops); + tsm_report_unregister(&tdx_tsm_ops); free_quote_buf(quote_data); misc_deregister(&tdx_misc_dev); + tdx_mr_deinit(tdx_attr_groups[0]); } module_exit(tdx_guest_exit);