On 3/26/24 11:37 AM, Paul Barker wrote: > The TX queue should be serviced each time the poll function is called, > even if the full RX work budget has been consumed. This prevents > starvation of the TX queue when RX bandwidth usage is high. > > Fixes: a0d2f20650e8 ("Renesas Ethernet AVB PTP clock driver") > Signed-off-by: Paul Barker <paul.barker.ct@xxxxxxxxxxxxxx> [...] > diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/ethernet/renesas/ravb_main.c > index d1be030c8848..4f98e4e2badb 100644 > --- a/drivers/net/ethernet/renesas/ravb_main.c > +++ b/drivers/net/ethernet/renesas/ravb_main.c > @@ -1324,12 +1324,12 @@ static int ravb_poll(struct napi_struct *napi, int budget) > int q = napi - priv->napi; > int mask = BIT(q); > int quota = budget; > + bool rearm = true; I don't think we need an initializer, it gets reassigned below. And I'd rather call it unmask... > > /* Processing RX Descriptor Ring */ > /* Clear RX interrupt */ > ravb_write(ndev, ~(mask | RIS0_RESERVED), RIS0); > - if (ravb_rx(ndev, "a, q)) > - goto out; > + rearm = !ravb_rx(ndev, "a, q); > > /* Processing TX Descriptor Ring */ > spin_lock_irqsave(&priv->lock, flags); [...] MBR, Sergey