diff mbox series

[v4] KEYS: trusted: Fix trusted key backends when building as module

Message ID 20211201095900.3009225-1-a.fatoum@pengutronix.de (mailing list archive)
State New, archived
Headers show
Series [v4] KEYS: trusted: Fix trusted key backends when building as module | expand

Commit Message

Ahmad Fatoum Dec. 1, 2021, 9:59 a.m. UTC
From: Andreas Rammhold <andreas@rammhold.de>

Before this commit the kernel could end up with no trusted key sources
even though both of the currently supported backends (TPM and TEE) were
compiled as modules. This manifested in the trusted key type not being
registered at all.

When checking if a CONFIG_… preprocessor variable is defined we only
test for the builtin (=y) case and not the module (=m) case. By using
the IS_REACHABLE() macro we do test for both cases.

Fixes: 5d0682be3189 ("KEYS: trusted: Add generic trusted keys framework")
Reviewed-by: Jarkko Sakkinen <jarkko@kernel.org>
Reviewed-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Reviewed-by: Sumit Garg <sumit.garg@linaro.org>
Signed-off-by: Andreas Rammhold <andreas@rammhold.de>
Tested-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
---
Timeline so far:
  - 2021-05-09: Regression hits mainline with v5.13-rc1
  - 2021-07-16: Issue reported. v1 of this patch sent out
  - 2021-07-21: Ahmad sends out alternative patch to fix issue
  - 2021-07-27: Jarkko (Maintainer) NACKs Ahmad's patch because of scope
  - 2021-07-29: v2 with fixes sent out
  - 2021-07-29: Jarkko gives his Reviewed-by and requests one more v3
  - 2021-07-31: v3 sent out
  - 2021-09-13: Pinged, no maintainer feedback
  - 2021-09-27: Pinged, Mimi (Maintainer) comments due to to misunderstanding.
                Question about why this is not picked up ignored
  - 2021-10-11: Pinged, no maintainer feedback
  - 2021-11-01: Resend with timeline, but dropped R-b's, no maintainer feedback
  - 2021-12-01: This resend with timeline and tags

v3 -> v4:
  * Add my Tested-by
  * Add Reviewed-by's missed during v3 RESEND
  * Update timeline and resent in agreement with Andreas
v3 -> v3 RESEND:
  * Add timeline
v2 -> v3:
  * Fixed patch formatting
v1 -> v2:
  * Fixed commit message
  * Switched from IS_DEFINED() to IS_REACHABLE()
---
 security/keys/trusted-keys/trusted_core.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Jarkko Sakkinen Dec. 1, 2021, 10:40 a.m. UTC | #1
On Wed, Dec 01, 2021 at 10:59:00AM +0100, Ahmad Fatoum wrote:
> From: Andreas Rammhold <andreas@rammhold.de>
> 
> Before this commit the kernel could end up with no trusted key sources
> even though both of the currently supported backends (TPM and TEE) were
> compiled as modules. This manifested in the trusted key type not being
> registered at all.
> 
> When checking if a CONFIG_… preprocessor variable is defined we only
> test for the builtin (=y) case and not the module (=m) case. By using
> the IS_REACHABLE() macro we do test for both cases.
> 
> Fixes: 5d0682be3189 ("KEYS: trusted: Add generic trusted keys framework")
> Reviewed-by: Jarkko Sakkinen <jarkko@kernel.org>
> Reviewed-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
> Reviewed-by: Sumit Garg <sumit.garg@linaro.org>
> Signed-off-by: Andreas Rammhold <andreas@rammhold.de>
> Tested-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
> Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>

Thank you, I picked this.

/Jarkko
Ahmad Fatoum Dec. 1, 2021, 10:47 a.m. UTC | #2
On 01.12.21 11:40, Jarkko Sakkinen wrote:
> On Wed, Dec 01, 2021 at 10:59:00AM +0100, Ahmad Fatoum wrote:
>> From: Andreas Rammhold <andreas@rammhold.de>
>>
>> Before this commit the kernel could end up with no trusted key sources
>> even though both of the currently supported backends (TPM and TEE) were
>> compiled as modules. This manifested in the trusted key type not being
>> registered at all.
>>
>> When checking if a CONFIG_… preprocessor variable is defined we only
>> test for the builtin (=y) case and not the module (=m) case. By using
>> the IS_REACHABLE() macro we do test for both cases.
>>
>> Fixes: 5d0682be3189 ("KEYS: trusted: Add generic trusted keys framework")
>> Reviewed-by: Jarkko Sakkinen <jarkko@kernel.org>
>> Reviewed-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
>> Reviewed-by: Sumit Garg <sumit.garg@linaro.org>
>> Signed-off-by: Andreas Rammhold <andreas@rammhold.de>
>> Tested-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
>> Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
> 
> Thank you, I picked this.

Excellent. Could I know your opinion on my CAAM Trusted Keys series as well? :-)

Thanks,
Ahmad

> 
> /Jarkko
>
diff mbox series

Patch

diff --git a/security/keys/trusted-keys/trusted_core.c b/security/keys/trusted-keys/trusted_core.c
index d5c891d8d353..5b35f1b87644 100644
--- a/security/keys/trusted-keys/trusted_core.c
+++ b/security/keys/trusted-keys/trusted_core.c
@@ -27,10 +27,10 @@  module_param_named(source, trusted_key_source, charp, 0);
 MODULE_PARM_DESC(source, "Select trusted keys source (tpm or tee)");
 
 static const struct trusted_key_source trusted_key_sources[] = {
-#if defined(CONFIG_TCG_TPM)
+#if IS_REACHABLE(CONFIG_TCG_TPM)
 	{ "tpm", &trusted_key_tpm_ops },
 #endif
-#if defined(CONFIG_TEE)
+#if IS_REACHABLE(CONFIG_TEE)
 	{ "tee", &trusted_key_tee_ops },
 #endif
 };