[PATCH 1/2] clk-bcm2835: use subsys_initcall for the clock driver when IMA is enabled

Alberto Solavagione albertosolavagione30 at gmail.com
Sat Apr 23 15:42:29 UTC 2022


We are working on a RaspberryPi 4 with the rpi-5.15.y kernel and a Infineon SLB9670 TPM.
We wrote this two patches in order to fix a problem with IMA and TPM, specifically the TPM device results available when IMA is already in bypass mode.
We already opened a pull request (https://github.com/raspberrypi/linux/pull/5003) on the rpi-5.15.y branch where you can find additional, more specific, information about the problem and the solution.

Thanks for you attention,
Davide Scovotto, Master's degree Student at PoliTO,
Alberto Solavagione, Master's degree Student at PoliTO.

Co-authored-by: Davide Scovotto <scovottodavide at gmail.com>
Co-developed-by: Davide Scovotto <scovottodavide at gmail.com>
Signed-off-by: Davide Scovotto <scovottodavide at gmail.com>
Signed-off-by: Alberto Solavagione <albertosolavagione30 at gmail.com>
---
 drivers/clk/bcm/clk-bcm2835.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/clk/bcm/clk-bcm2835.c b/drivers/clk/bcm/clk-bcm2835.c
index 7112a9c4f7e3..9ed157b0a37a 100644
--- a/drivers/clk/bcm/clk-bcm2835.c
+++ b/drivers/clk/bcm/clk-bcm2835.c
@@ -2408,7 +2408,11 @@ static int __init __bcm2835_clk_driver_init(void)
 {
 	return platform_driver_register(&bcm2835_clk_driver);
 }
+#ifdef CONFIG_IMA
+subsys_initcall(__bcm2835_clk_driver_init);
+#else
 postcore_initcall(__bcm2835_clk_driver_init);
+#endif
 
 MODULE_AUTHOR("Eric Anholt <eric at anholt.net>");
 MODULE_DESCRIPTION("BCM2835 clock driver");
-- 
2.33.0


>From aaba5263553b28540c8d5a923cadcb424d9b3d12 Mon Sep 17 00:00:00 2001
From: Scovotto Davide <scovottodavide at gmail.com>
Date: Wed, 20 Apr 2022 17:22:17 +0200
Subject: [PATCH 2/2] tpm_tis_spi_main: Force probe routine to run synchronously with driver and device registration when IMA is enabled

Co-authored-by: Alberto Solavagione <albertosolavagione30 at gmail.com>
Co-developed-by: Alberto Solavagione <albertosolavagione30 at gmail.com>
Signed-off-by: Alberto Solavagione <albertosolavagione30 at gmail.com>
Signed-off-by: Davide Scovotto <scovottodavide at gmail.com>
---
 drivers/char/tpm/tpm_tis_spi_main.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/char/tpm/tpm_tis_spi_main.c b/drivers/char/tpm/tpm_tis_spi_main.c
index aaa59a00eeae..b6cf04812078 100644
--- a/drivers/char/tpm/tpm_tis_spi_main.c
+++ b/drivers/char/tpm/tpm_tis_spi_main.c
@@ -294,7 +294,11 @@ static struct spi_driver tpm_tis_spi_driver = {
 		.pm = &tpm_tis_pm,
 		.of_match_table = of_match_ptr(of_tis_spi_match),
 		.acpi_match_table = ACPI_PTR(acpi_tis_spi_match),
+#ifdef CONFIG_IMA
+		.probe_type = PROBE_FORCE_SYNCHRONOUS,
+#else
 		.probe_type = PROBE_PREFER_ASYNCHRONOUS,
+#endif
 	},
 	.probe = tpm_tis_spi_driver_probe,
 	.remove = tpm_tis_spi_remove,
-- 
2.33.0



More information about the Linux-security-module-archive mailing list