Re: [PATCH v2 03/15] net: rnpgbe: Add basic mbx ops support

From: Andrew Lunn
Date: Tue Jul 22 2025 - 09:52:28 EST


On Tue, Jul 22, 2025 at 02:45:30PM +0800, Yibo Dong wrote:
> On Mon, Jul 21, 2025 at 05:43:41PM +0200, Andrew Lunn wrote:
> > > #define MAX_VF_NUM (8)
> >
> > > + hw->max_vfs = 7;
> >
> > ???
>
> This is mistake, max vfs is 7. 8 is '7 vfs + 1 pf'.

So it seems like you need to add a new #define for MAX_FUNCS_NUM, and
set MAX_VF_NUM to 7. And then actually use MAX_VP_NUM. When reviewing
your own code, seeing the number 7, not a define, should of been a
warning, something is wrong....

> > > +static int mucse_obtain_mbx_lock_pf(struct mucse_hw *hw, enum MBX_ID mbx_id)
> > > +{
> > > + struct mucse_mbx_info *mbx = &hw->mbx;
> > > + int try_cnt = 5000, ret;
> > > + u32 reg;
> > > +
> > > + reg = (mbx_id == MBX_FW) ? PF2FW_MBOX_CTRL(mbx) :
> > > + PF2VF_MBOX_CTRL(mbx, mbx_id);
> > > + while (try_cnt-- > 0) {
> > > + /* Take ownership of the buffer */
> > > + mbx_wr32(hw, reg, MBOX_PF_HOLD);
> > > + /* force write back before check */
> > > + wmb();
> > > + if (mbx_rd32(hw, reg) & MBOX_PF_HOLD)
> > > + return 0;
> > > + udelay(100);
> > > + }
> > > + return ret;
> >
> > I've not compiled this, but isn't ret uninitialized here? I would also
> > expect it to return -ETIMEDOUT?
> >
> > Andrew
> >
>
> Yes, ret is uninitialized. I will fix this.

Did the compiler give a warning? Code should be warning free. We also
expect networking code to be W=1 warning free.

Andrew