Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 150223
b: refs/heads/master
c: d62fda0
h: refs/heads/master
i:
  150221: 97c1d0f
  150219: c530d40
  150215: bdebb00
  150207: ea865d3
v: v3
  • Loading branch information
Eric Dumazet authored and David S. Miller committed May 18, 2009
1 parent d6a66fa commit fea9eed
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 8 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 9dc20c5f78c53bf57fb7874b6e942842e1db20d3
refs/heads/master: d62fda082c48b417b47a553860abf75d9cf8b591
18 changes: 11 additions & 7 deletions trunk/drivers/net/bnx2.c
Original file line number Diff line number Diff line change
Expand Up @@ -2630,14 +2630,15 @@ bnx2_tx_int(struct bnx2 *bp, struct bnx2_napi *bnapi, int budget)
tx_buf = &txr->tx_buf_ring[sw_ring_cons];
skb = tx_buf->skb;

/* prefetch skb_end_pointer() to speedup skb_shinfo(skb) */
prefetch(&skb->end);

/* partial BD completions possible with TSO packets */
if (skb_is_gso(skb)) {
if (tx_buf->is_gso) {
u16 last_idx, last_ring_idx;

last_idx = sw_cons +
skb_shinfo(skb)->nr_frags + 1;
last_ring_idx = sw_ring_cons +
skb_shinfo(skb)->nr_frags + 1;
last_idx = sw_cons + tx_buf->nr_frags + 1;
last_ring_idx = sw_ring_cons + tx_buf->nr_frags + 1;
if (unlikely(last_ring_idx >= MAX_TX_DESC_CNT)) {
last_idx++;
}
Expand All @@ -2649,7 +2650,7 @@ bnx2_tx_int(struct bnx2 *bp, struct bnx2_napi *bnapi, int budget)
skb_dma_unmap(&bp->pdev->dev, skb, DMA_TO_DEVICE);

tx_buf->skb = NULL;
last = skb_shinfo(skb)->nr_frags;
last = tx_buf->nr_frags;

for (i = 0; i < last; i++) {
sw_cons = NEXT_TX_BD(sw_cons);
Expand All @@ -2662,7 +2663,8 @@ bnx2_tx_int(struct bnx2 *bp, struct bnx2_napi *bnapi, int budget)
if (tx_pkt == budget)
break;

hw_cons = bnx2_get_hw_tx_cons(bnapi);
if (hw_cons == sw_cons)
hw_cons = bnx2_get_hw_tx_cons(bnapi);
}

txr->hw_tx_cons = hw_cons;
Expand Down Expand Up @@ -6179,6 +6181,8 @@ bnx2_start_xmit(struct sk_buff *skb, struct net_device *dev)
txbd->tx_bd_vlan_tag_flags = vlan_tag_flags | TX_BD_FLAGS_START;

last_frag = skb_shinfo(skb)->nr_frags;
tx_buf->nr_frags = last_frag;
tx_buf->is_gso = skb_is_gso(skb);

for (i = 0; i < last_frag; i++) {
skb_frag_t *frag = &skb_shinfo(skb)->frags[i];
Expand Down
2 changes: 2 additions & 0 deletions trunk/drivers/net/bnx2.h
Original file line number Diff line number Diff line change
Expand Up @@ -6552,6 +6552,8 @@ struct sw_pg {

struct sw_tx_bd {
struct sk_buff *skb;
unsigned short is_gso;
unsigned short nr_frags;
};

#define SW_RXBD_RING_SIZE (sizeof(struct sw_bd) * RX_DESC_CNT)
Expand Down

0 comments on commit fea9eed

Please sign in to comment.