On 10/25/24 2:14 PM, Peter Griffin wrote:
> Move the EXYNOS_UFS_OPT_UFSPR_SECURE check inside exynos_ufs_config_smu().
>
> This way all call sites will benefit from the check. This fixes a bug
> currently in the exynos_ufs_resume() path on gs101 which will cause
> a serror.
because resume() calls exynos_ufs_config_smu() and we ended up accessing
register fields that we shouldn't have.
>
> Fixes: d11e0a318df8 ("scsi: ufs: exynos: Add support for Tensor gs101 SoC")
Cc: stable@vger.kernel.org
Reviewed-by: Tudor Ambarus <tudor.ambarus@linaro.org>
> Signed-off-by: Peter Griffin <peter.griffin@linaro.org>
> ---
> drivers/ufs/host/ufs-exynos.c | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/ufs/host/ufs-exynos.c b/drivers/ufs/host/ufs-exynos.c
> index e25de4b86ac0..939d08bce545 100644
> --- a/drivers/ufs/host/ufs-exynos.c
> +++ b/drivers/ufs/host/ufs-exynos.c
> @@ -724,6 +724,9 @@ static void exynos_ufs_config_smu(struct exynos_ufs *ufs)
> {
> u32 reg, val;
>
> + if (ufs->opts & EXYNOS_UFS_OPT_UFSPR_SECURE)
> + return;
> +
> exynos_ufs_disable_auto_ctrl_hcc_save(ufs, &val);
>
> /* make encryption disabled by default */
> @@ -1457,8 +1460,8 @@ static int exynos_ufs_init(struct ufs_hba *hba)
> if (ret)
> goto out;
> exynos_ufs_specify_phy_time_attr(ufs);
> - if (!(ufs->opts & EXYNOS_UFS_OPT_UFSPR_SECURE))
> - exynos_ufs_config_smu(ufs);
> +
> + exynos_ufs_config_smu(ufs);
>
> hba->host->dma_alignment = DATA_UNIT_SIZE - 1;
> return 0;