diff mbox series

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

Message ID 20220423154229.3620-1-albertosolavagione30@gmail.com (mailing list archive)
State New
Headers show
Series [1/2] clk-bcm2835: use subsys_initcall for the clock driver when IMA is enabled | expand

Commit Message

Alberto Solavagione April 23, 2022, 3:42 p.m. UTC
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@gmail.com>
Co-developed-by: Davide Scovotto <scovottodavide@gmail.com>
Signed-off-by: Davide Scovotto <scovottodavide@gmail.com>
Signed-off-by: Alberto Solavagione <albertosolavagione30@gmail.com>
---
 drivers/clk/bcm/clk-bcm2835.c | 4 ++++
 1 file changed, 4 insertions(+)
diff mbox series

Patch

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@anholt.net>");
 MODULE_DESCRIPTION("BCM2835 clock driver");
-- 
2.33.0


From aaba5263553b28540c8d5a923cadcb424d9b3d12 Mon Sep 17 00:00:00 2001
From: Scovotto Davide <scovottodavide@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@gmail.com>
Co-developed-by: Alberto Solavagione <albertosolavagione30@gmail.com>
Signed-off-by: Alberto Solavagione <albertosolavagione30@gmail.com>
Signed-off-by: Davide Scovotto <scovottodavide@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,