Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e9831909 authored by Eric Dumazet's avatar Eric Dumazet Committed by David S. Miller
Browse files

bnx2: Support for byte queue limits



Changes to bnx2 to use byte queue limits.

Signed-off-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
CC: Tom Herbert <therbert@google.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent d8a6e65f
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -2810,6 +2810,7 @@ bnx2_tx_int(struct bnx2 *bp, struct bnx2_napi *bnapi, int budget)
	struct bnx2_tx_ring_info *txr = &bnapi->tx_ring;
	u16 hw_cons, sw_cons, sw_ring_cons;
	int tx_pkt = 0, index;
	unsigned int tx_bytes = 0;
	struct netdev_queue *txq;

	index = (bnapi - bp->bnx2_napi);
@@ -2864,6 +2865,7 @@ bnx2_tx_int(struct bnx2 *bp, struct bnx2_napi *bnapi, int budget)

		sw_cons = NEXT_TX_BD(sw_cons);

		tx_bytes += skb->len;
		dev_kfree_skb(skb);
		tx_pkt++;
		if (tx_pkt == budget)
@@ -2873,6 +2875,7 @@ bnx2_tx_int(struct bnx2 *bp, struct bnx2_napi *bnapi, int budget)
			hw_cons = bnx2_get_hw_tx_cons(bnapi);
	}

	netdev_tx_completed_queue(txq, tx_pkt, tx_bytes);
	txr->hw_tx_cons = hw_cons;
	txr->tx_cons = sw_cons;

@@ -5393,6 +5396,7 @@ bnx2_free_tx_skbs(struct bnx2 *bp)
			}
			dev_kfree_skb(skb);
		}
		netdev_tx_reset_queue(netdev_get_tx_queue(bp->dev, i));
	}
}

@@ -6546,6 +6550,8 @@ bnx2_start_xmit(struct sk_buff *skb, struct net_device *dev)
	}
	txbd->tx_bd_vlan_tag_flags |= TX_BD_FLAGS_END;

	netdev_tx_sent_queue(txq, skb->len);

	prod = NEXT_TX_BD(prod);
	txr->tx_prod_bseq += skb->len;