On 22/08/25 12:21 pm, Yibo Dong wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the 
> content is safe
> 
> On Fri, Aug 22, 2025 at 06:07:51AM +0000, parthiban.veerasoo...@microchip.com 
> wrote:
>> On 22/08/25 11:07 am, Yibo Dong wrote:
>>> EXTERNAL EMAIL: Do not click links or open attachments unless you know the 
>>> content is safe
>>>
>>> On Fri, Aug 22, 2025 at 04:49:44AM +0000, 
>>> parthiban.veerasoo...@microchip.com wrote:
>>>> On 22/08/25 8:04 am, Dong Yibo wrote:
>>>>> +/**
>>>>> + * mucse_mbx_get_capability - Get hw abilities from fw
>>>>> + * @hw: pointer to the HW structure
>>>>> + *
>>>>> + * mucse_mbx_get_capability tries to get capabities from
>>>>> + * hw. Many retrys will do if it is failed.
>>>>> + *
>>>>> + * @return: 0 on success, negative on failure
>>>>> + **/
>>>>> +int mucse_mbx_get_capability(struct mucse_hw *hw)
>>>>> +{
>>>>> +       struct hw_abilities ability = {};
>>>>> +       int try_cnt = 3;
>>>>> +       int err = -EIO;
>>>> Here too you no need to assign -EIO as it is updated in the while.
>>>>
>>>> Best regards,
>>>> Parthiban V
>>>>> +
>>>>> +       while (try_cnt--) {
>>>>> +               err = mucse_fw_get_capability(hw, &ability);
>>>>> +               if (err)
>>>>> +                       continue;
>>>>> +               hw->pfvfnum = le16_to_cpu(ability.pfnum) & GENMASK_U16(7, 
>>>>> 0);
>>>>> +               return 0;
>>>>> +       }
>>>>> +       return err;
>>>>> +}
>>>>> +
>>>
>>> err is updated because 'try_cnt = 3'. But to the code logic itself, it 
>>> should
>>> not leave err uninitialized since no guarantee that codes 'whthin while'
>>> run at least once. Right?
>> Yes, but 'try_cnt' is hard coded as 3, so the 'while loop' will always
>> execute and err will definitely be updated.
>>
>> So in this case, the check isn’t needed unless try_cnt is being modified
>> externally with unknown values, which doesn’t seem to be happening here.
>>
>> Best regards,
>> Parthiban V
>>>
>>> Thanks for your feedback.
>>>
>>>
>>
> 
> Is it fine if I add some comment like this?
> .....
> /* Initialized as a defensive measure to handle edge cases
>   * where try_cnt might be modified
>   */
>   int err = -EIO;
> .....
> 
> Additionally, keeping this initialization ensures we’ll no need to consider
> its impact every time 'try_cnt' is modified (Although this situation is
> almost impossible).
If you're concerned that 'try_cnt' might be modified, then let's keep 
the existing implementation as is. I also think the comment might not be 
necessary, so feel free to ignore my earlier suggestion.

Best regards,
Parthiban V
> 
> Thanks for your feedback.
> 
> 

Reply via email to