aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDov Murik <dovmurik@linux.ibm.com>2022-04-12 21:21:26 +0000
committerArd Biesheuvel <ardb@kernel.org>2022-04-13 19:11:20 +0200
commit20ffd9205ef60fca8912bc9df1602bb627756602 (patch)
treeac5b80804d72393998b4fd017c23cffea7ed772a
parentvirt: Add efi_secret module to expose confidential computing secrets (diff)
downloadlinux-dev-20ffd9205ef60fca8912bc9df1602bb627756602.tar.xz
linux-dev-20ffd9205ef60fca8912bc9df1602bb627756602.zip
efi: Register efi_secret platform device if EFI secret area is declared
During efi initialization, check if coco_secret is defined in the EFI configuration table; in such case, register platform device "efi_secret". This allows udev to automatically load the efi_secret module (platform driver), which in turn will populate the <securityfs>/secrets/coco directory in guests into which secrets were injected. Note that a declared address of an EFI secret area doesn't mean that secrets where indeed injected to that area; if the secret area is not populated, the driver will not load (but the platform device will still be registered). Signed-off-by: Dov Murik <dovmurik@linux.ibm.com> Reviewed-by: Gerd Hoffmann <kraxel@redhat.com> Link: https://lore.kernel.org/r/20220412212127.154182-4-dovmurik@linux.ibm.com Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
-rw-r--r--drivers/firmware/efi/efi.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c
index e0f43262d451..860534bcfdac 100644
--- a/drivers/firmware/efi/efi.c
+++ b/drivers/firmware/efi/efi.c
@@ -425,6 +425,11 @@ static int __init efisubsys_init(void)
if (efi_enabled(EFI_DBG) && efi_enabled(EFI_PRESERVE_BS_REGIONS))
efi_debugfs_init();
+#ifdef CONFIG_EFI_COCO_SECRET
+ if (efi.coco_secret != EFI_INVALID_TABLE_ADDR)
+ platform_device_register_simple("efi_secret", 0, NULL, 0);
+#endif
+
return 0;
err_remove_group: