From: Lukas Funke <lukas.fu...@weidmueller.com> tpm_tis_wait_init() is using the 'chip->timeout_b' field which is initialized in tpm_tis_init(). However, the init-function is called *after* tpm_tis_wait_init() introducing an uninitalized field access.
This commit switches both routines. Signed-off-by: Lukas Funke <lukas.fu...@weidmueller.com> --- drivers/tpm/tpm2_tis_spi.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/tpm/tpm2_tis_spi.c b/drivers/tpm/tpm2_tis_spi.c index b0fe97ab1d0..5a4dbfd3ccb 100644 --- a/drivers/tpm/tpm2_tis_spi.c +++ b/drivers/tpm/tpm2_tis_spi.c @@ -256,17 +256,17 @@ static int tpm_tis_spi_probe(struct udevice *dev) /* Ensure a minimum amount of time elapsed since reset of the TPM */ mdelay(drv_data->time_before_first_cmd_ms); + tpm_tis_ops_register(dev, &phy_ops); + ret = tpm_tis_init(dev); + if (ret) + goto err; + ret = tpm_tis_wait_init(dev, chip->locality); if (ret) { log(LOGC_DM, LOGL_ERR, "%s: no device found\n", __func__); return ret; } - tpm_tis_ops_register(dev, &phy_ops); - ret = tpm_tis_init(dev); - if (ret) - goto err; - priv->pcr_count = drv_data->pcr_count; priv->pcr_select_min = drv_data->pcr_select_min; priv->version = TPM_V2; -- 2.30.2