]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/blobdiff - drivers/net/ethernet/hisilicon/hip04_eth.c
net: hisilicon: make hip04_tx_reclaim non-reentrant
[mirror_ubuntu-jammy-kernel.git] / drivers / net / ethernet / hisilicon / hip04_eth.c
index d60452845539f3acbd42cdfebc94865bf2f61e02..1e1b154ed2ec765067a78f4c9f81c49050ebbeb7 100644 (file)
@@ -585,6 +585,9 @@ static int hip04_rx_poll(struct napi_struct *napi, int budget)
        u16 len;
        u32 err;
 
+       /* clean up tx descriptors */
+       tx_remaining = hip04_tx_reclaim(ndev, false);
+
        while (cnt && !last) {
                buf = priv->rx_buf[priv->rx_head];
                skb = build_skb(buf, priv->rx_buf_size);
@@ -645,8 +648,7 @@ refill:
        }
        napi_complete_done(napi, rx);
 done:
-       /* clean up tx descriptors and start a new timer if necessary */
-       tx_remaining = hip04_tx_reclaim(ndev, false);
+       /* start a new timer if necessary */
        if (rx < budget && tx_remaining)
                hip04_start_tx_timer(priv);