2023-12-29 13:03:15

by Hardevsinh Palaniya

[permalink] [raw]
Subject: [PATCH] mmc: sdhci-esdhc-imx: Fix smatch errors

Resolve smatch errors in esdhc_executing_tuning()

esdhc_executing_tuning() error: uninitialized symbol 'target_min'
esdhc_executing_tuning() error: uninitialized symbol 'target_max'

Signed-off-by: Hardevsinh Palaniya <[email protected]>

diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c
index 40a6e2f8145a..839b60138f04 100644
--- a/drivers/mmc/host/sdhci-esdhc-imx.c
+++ b/drivers/mmc/host/sdhci-esdhc-imx.c
@@ -1166,6 +1166,8 @@ static int esdhc_executing_tuning(struct sdhci_host *host, u32 opcode)
min = ESDHC_TUNE_CTRL_MIN;
max = ESDHC_TUNE_CTRL_MIN;
target_win_length = 0;
+ target_min = 0;
+ target_max = 0;
while (max < ESDHC_TUNE_CTRL_MAX) {
/* find the mininum delay first which can pass tuning */
while (min < ESDHC_TUNE_CTRL_MAX) {
--
2.25.1



2023-12-29 14:36:24

by Stefan Wahren

[permalink] [raw]
Subject: Re: [PATCH] mmc: sdhci-esdhc-imx: Fix smatch errors

Hi Hardevsinh,

the patch subject is a too generic. Maybe something like "fix
initialization of target_min/max"

Am 29.12.23 um 14:02 schrieb Hardevsinh Palaniya:
> Resolve smatch errors in esdhc_executing_tuning()
>
> esdhc_executing_tuning() error: uninitialized symbol 'target_min'
> esdhc_executing_tuning() error: uninitialized symbol 'target_max'
I think this deserve

Fixes: 541a95e64d76 ("mmc: sdhci-esdhc-imx: optimize the manual tuing
logic to get the best timing")

Thanks
> Signed-off-by: Hardevsinh Palaniya <[email protected]>
>
> diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c
> index 40a6e2f8145a..839b60138f04 100644
> --- a/drivers/mmc/host/sdhci-esdhc-imx.c
> +++ b/drivers/mmc/host/sdhci-esdhc-imx.c
> @@ -1166,6 +1166,8 @@ static int esdhc_executing_tuning(struct sdhci_host *host, u32 opcode)
> min = ESDHC_TUNE_CTRL_MIN;
> max = ESDHC_TUNE_CTRL_MIN;
> target_win_length = 0;
> + target_min = 0;
> + target_max = 0;
> while (max < ESDHC_TUNE_CTRL_MAX) {
> /* find the mininum delay first which can pass tuning */
> while (min < ESDHC_TUNE_CTRL_MAX) {


2024-01-04 07:12:52

by Adrian Hunter

[permalink] [raw]
Subject: Re: [PATCH] mmc: sdhci-esdhc-imx: Fix smatch errors

On 29/12/23 16:34, Stefan Wahren wrote:
> Hi Hardevsinh,
>
> the patch subject is a too generic. Maybe something like "fix
> initialization of target_min/max"
>
> Am 29.12.23 um 14:02 schrieb Hardevsinh Palaniya:
>> Resolve smatch errors in esdhc_executing_tuning()
>>
>> esdhc_executing_tuning() error: uninitialized symbol 'target_min'
>> esdhc_executing_tuning() error: uninitialized symbol 'target_max'
> I think this deserve
>
> Fixes: 541a95e64d76 ("mmc: sdhci-esdhc-imx: optimize the manual tuing
> logic to get the best timing")

Is smatch right though?

while (max < ESDHC_TUNE_CTRL_MAX) { // always true first iteration

max = min + ESDHC_TUNE_CTRL_STEP; // max > min

max -= ESDHC_TUNE_CTRL_STEP;
break; // max >= min

win_length = max - min + 1; // always > 0 since max >= min

if (win_length > target_win_length) { // always true first iteration
target_min = min; // always initialized
target_max = max; // always initialized

>
> Thanks
>> Signed-off-by: Hardevsinh Palaniya <[email protected]>
>>
>> diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c
>> index 40a6e2f8145a..839b60138f04 100644
>> --- a/drivers/mmc/host/sdhci-esdhc-imx.c
>> +++ b/drivers/mmc/host/sdhci-esdhc-imx.c
>> @@ -1166,6 +1166,8 @@ static int esdhc_executing_tuning(struct sdhci_host *host, u32 opcode)
>>       min = ESDHC_TUNE_CTRL_MIN;
>>       max = ESDHC_TUNE_CTRL_MIN;
>>       target_win_length = 0;
>> +    target_min = 0;
>> +    target_max = 0;
>>       while (max < ESDHC_TUNE_CTRL_MAX) {
>>           /* find the mininum delay first which can pass tuning */
>>           while (min < ESDHC_TUNE_CTRL_MAX) {
>