Re: [PATCH v3 4/5] net: rnpgbe: Add basic mbx_fw support
From: Yibo Dong
Date: Thu Aug 14 2025 - 21:37:25 EST
On Fri, Aug 15, 2025 at 02:04:57AM +0200, Andrew Lunn wrote:
> > If it is more cleaner bellow?
> >
> > static int mucse_fw_send_cmd_wait(struct mucse_hw *hw,
> > struct mbx_fw_cmd_req *req,
> > struct mbx_fw_cmd_reply *reply)
> > {
> > int len = le16_to_cpu(req->datalen) + MBX_REQ_HDR_LEN;
> > int retry_cnt = 3;
> > int err;
> >
> > err = mutex_lock_interruptible(&hw->mbx.lock);
> > if (err)
> > return err;
> > err = hw->mbx.ops->write_posted(hw, (u32 *)req,
> > L_WD(len));
> > if (err)
> > goto quit;
> > do {
> > err = hw->mbx.ops->read_posted(hw, (u32 *)reply,
> > L_WD(sizeof(*reply)));
> > if (err)
> > goto quit;
> > } while (--retry_cnt >= 0 && reply->opcode != req->opcode);
> >
> > mutex_unlock(&hw->mbx.lock);
> > if (retry_cnt < 0)
> > return -ETIMEDOUT;
> > if (reply->error_code)
> > return -EIO;
> > return 0;
> > quit:
> > mutex_unlock(&hw->mbx.lock);
> > return err;
> > }
>
> You might want a read a few other drivers in mailine. Look at the
> naming. I doubt you will find many using "quit" for a label. "out" or
> "unlock" is more popular.
>
> When it comes to locks, it is better to have one lock statement and
> one unlock statement. It then becomes easy to see all paths lead to
> the unlock.
>
> Andrew
>
Got it, I will change label 'quit' to 'out'.
And I will try to keep 'one lock statement and one unlock statement'
principle in mind.
Thanks for your feedback.