]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
bcm63xx_enet: improve rx loop
authorSieng Piaw Liew <liew.s.piaw@gmail.com>
Wed, 6 Jan 2021 14:42:08 +0000 (22:42 +0800)
committerJakub Kicinski <kuba@kernel.org>
Thu, 7 Jan 2021 20:39:53 +0000 (12:39 -0800)
Use existing rx processed count to track against budget, thereby making
budget decrement operation redundant.

rx_desc_count can be calculated outside the rx loop, making the loop a
bit smaller.

Signed-off-by: Sieng Piaw Liew <liew.s.piaw@gmail.com>
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/broadcom/bcm63xx_enet.c

index c11491429ed2a8e7750e5a526bb30585168eaf32..fd8767213165779560090759026b62f97f6c7301 100644 (file)
@@ -339,7 +339,6 @@ static int bcm_enet_receive_queue(struct net_device *dev, int budget)
                priv->rx_curr_desc++;
                if (priv->rx_curr_desc == priv->rx_ring_size)
                        priv->rx_curr_desc = 0;
-               priv->rx_desc_count--;
 
                /* if the packet does not have start of packet _and_
                 * end of packet flag set, then just recycle it */
@@ -404,9 +403,10 @@ static int bcm_enet_receive_queue(struct net_device *dev, int budget)
                dev->stats.rx_bytes += len;
                list_add_tail(&skb->list, &rx_list);
 
-       } while (--budget > 0);
+       } while (processed < budget);
 
        netif_receive_skb_list(&rx_list);
+       priv->rx_desc_count -= processed;
 
        if (processed || !priv->rx_desc_count) {
                bcm_enet_refill_rx(dev, true);