Re: [PATCH net-next v7 4/5] net: rnpgbe: Add basic mbx_fw support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Aug 22, 2025 at 08:05:50AM +0000, Parthiban.Veerasooran@xxxxxxxxxxxxx wrote:
> 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.Veerasooran@xxxxxxxxxxxxx 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.Veerasooran@xxxxxxxxxxxxx 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.
> > 
> > 
> 

Thank you for your understanding and flexibility. I'll keep the current
implementation with the initialization of err = -EIO as a defensive measure,
as you suggested. I appreciate your willingness to accommodate this consideration.





[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux