On Thu, Sep 15, 2022 at 10:29:34PM +0200, Nam Cao wrote: > The function device_alloc_rx_buf does 2 things: allocating rx buffer > and initializing the rx descriptor's values. Split this function into > two, with each does one job. > > This split is preparation for implementing correct out-of-memory error > handling. > > Signed-off-by: Nam Cao <namcaov@xxxxxxxxx> > --- > drivers/staging/vt6655/device_main.c | 16 +++++++++++++--- > 1 file changed, 13 insertions(+), 3 deletions(-) > > diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c > index 79325a693857..27fe28156257 100644 > --- a/drivers/staging/vt6655/device_main.c > +++ b/drivers/staging/vt6655/device_main.c > @@ -133,6 +133,7 @@ static int device_init_td1_ring(struct vnt_private *priv); > static int device_rx_srv(struct vnt_private *priv, unsigned int idx); > static int device_tx_srv(struct vnt_private *priv, unsigned int idx); > static bool device_alloc_rx_buf(struct vnt_private *, struct vnt_rx_desc *); > +static void device_init_rx_desc(struct vnt_private *priv, struct vnt_rx_desc *rd); > static void device_free_rx_buf(struct vnt_private *priv, > struct vnt_rx_desc *rd); > static void device_init_registers(struct vnt_private *priv); > @@ -615,6 +616,8 @@ static int device_init_rd0_ring(struct vnt_private *priv) > dev_err(&priv->pcid->dev, "can not alloc rx bufs\n"); > ret = -ENOMEM; > goto err_free_rd; > + } else { > + device_init_rx_desc(priv, desc); > } None of these else statements make sense. It should be: ret = -ENOMEM; goto err_free_rd; } device_init_rx_desc(priv, desc); desc->next = &priv->aRD0Ring[(i + 1) % priv->opts.rx_descs0]; I haven't reviewed the patch totally. I don't understand why it's doing this here instead of at the end. But then I don't understand why it needs to be in a separate function at all. This patch does not make sense. The commit description says that this is a "preparation" patch. Maybe fold it in with patch 5? The rule is "one thing per patch" not "half a thing per patch". regards, dan carpenter