[PATCH 1/1] cmd: simplify do_adc_single()

Heinrich Schuchardt heinrich.schuchardt at canonical.com
Sun Jul 3 14:39:40 CEST 2022



On 7/3/22 14:22, Vyacheslav wrote:
> 25.04.2022 23:26, Heinrich Schuchardt wrote:
>> If argc is not < 3, it must be >= 3.
>>
>> If argc >= 3, argv[2] cannot be NULL.
>>
>> Fixes: 9de612ae4ded ("cmd: adc: Add support for storing ADC result in 
>> env variable")
>> Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt at canonical.com>
>> ---
>>   cmd/adc.c | 7 +------
>>   1 file changed, 1 insertion(+), 6 deletions(-)
>>
>> diff --git a/cmd/adc.c b/cmd/adc.c
>> index 8de9121cad..195efa8661 100644
>> --- a/cmd/adc.c
>> +++ b/cmd/adc.c
>> @@ -71,7 +71,6 @@ static int do_adc_info(struct cmd_tbl *cmdtp, int 
>> flag, int argc,
>>   static int do_adc_single(struct cmd_tbl *cmdtp, int flag, int argc,
>>                char *const argv[])
>>   {
>> -    char *varname = NULL;
>>       struct udevice *dev;
>>       unsigned int data;
>>       int ret, uV, val;
>> @@ -79,9 +78,6 @@ static int do_adc_single(struct cmd_tbl *cmdtp, int 
>> flag, int argc,
>>       if (argc < 3)
>>           return CMD_RET_USAGE;
>> -    if (argc >= 3)
>> -        varname = argv[2];
>> -
>>       ret = adc_channel_single_shot(argv[1], simple_strtol(argv[2], 
>> NULL, 0),
>>                         &data);
>>       if (ret) {
>> @@ -99,8 +95,7 @@ static int do_adc_single(struct cmd_tbl *cmdtp, int 
>> flag, int argc,
>>           printf("%u\n", data);
>>       }
>> -    if (varname)
>> -        env_set_ulong(varname, val);
>> +    env_set_ulong(argv[2], val);
> The source code contains an error:
> argv[2] contains <channel> arg
> variable for env_set is in argv[3]
> 
> This patch is wrong. It must be reversed and these two lines must be 
> corrected:
>      if (argc >= 3)
>          varname = argv[2];
> 
> to
>      if (argc >= 4)
>          varname = argv[3];

Could you, please, send a patch.

Best regards

Heinrich

> 
> 
>>       return CMD_RET_SUCCESS;
>>   }
>>
> 


More information about the U-Boot mailing list