tpm_crb: ffa_tpm: return errors from interface functions if no ffa-crb driver
Subsystems (2)
PATCH 1/1 tpm_crb: ffa_tpm: return errors from interface functions if no ffa-crb driver
If ACPI advertises an FF-A based TPM but the tpm_crb_ffa driver is not enabled via Kconfig, inline stub versions of the interface functions are used. These functions incorrectly return 0, which indicates success. The result is that the tpm_crb probe function continues execution and eventually detects a timeout at the TPM.
Change the inline functions to return errors, so that probe() sees that tpm_crb_ffa is not present and aborts the probe.
--- drivers/char/tpm/tpm_crb_ffa.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
drivers/char/tpm/tpm_crb_ffa.h +3 -3
@@ -14,9 +14,9 @@ int tpm_crb_ffa_init(void);int tpm_crb_ffa_get_interface_version (u16 *major,u16 *minor);int tpm_crb_ffa_start (int request_type,int locality);#else -static inline int tpm_crb_ffa_init (void ) {return 0 ; } -static inline int tpm_crb_ffa_get_interface_version (u16 *major,u16 *minor) {return 0 ; } -static inline int tpm_crb_ffa_start (int request_type,int locality) {return 0 ; } +static inline int tpm_crb_ffa_init (void ) {return -ENODEV ; } +static inline int tpm_crb_ffa_get_interface_version (u16 *major,u16 *minor) {return -ENODEV ; } +static inline int tpm_crb_ffa_start (int request_type,int locality) {return -ENODEV ; }#endif #define CRB_FFA_START_TYPE_COMMAND 0
Signature · 1 line
2.34.1
Quoted 9 lines · Stuart Yoder
If ACPI advertises an FF-A based TPM but the
tpm_crb_ffadriver is not enabled viaKconfig, inline stub versions of the interface functions are used. These functions incorrectly return 0, which indicates success. The result is that thetpm_crbprobe function continues execution and eventually detects a timeout at the TPM.Change the inline functions to return errors, so that
probe()sees thattpm_crb_ffais not present and aborts the probe.
LGTM,
Signature · 2 lines
Regards, Sudeep