aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/broadcom/bnx2.c
diff options
context:
space:
mode:
authorEric Dumazet <eric.dumazet@gmail.com>2011-10-18 17:00:24 -0400
committerDavid S. Miller <davem@davemloft.net>2011-10-19 03:10:46 -0400
commit9e903e085262ffbf1fc44a17ac06058aca03524a (patch)
tree4acefc97ba38c1733474d25c0b2053b56af97db1 /drivers/net/ethernet/broadcom/bnx2.c
parentdd767856a36e00b631d65ebc4bb81b19915532d6 (diff)
net: add skb frag size accessors
To ease skb->truesize sanitization, its better to be able to localize all references to skb frags size. Define accessors : skb_frag_size() to fetch frag size, and skb_frag_size_{set|add|sub}() to manipulate it. Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/broadcom/bnx2.c')
-rw-r--r--drivers/net/ethernet/broadcom/bnx2.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/net/ethernet/broadcom/bnx2.c b/drivers/net/ethernet/broadcom/bnx2.c
index 6ff7636e73a2..965c7235804d 100644
--- a/drivers/net/ethernet/broadcom/bnx2.c
+++ b/drivers/net/ethernet/broadcom/bnx2.c
@@ -2871,7 +2871,7 @@ bnx2_tx_int(struct bnx2 *bp, struct bnx2_napi *bnapi, int budget)
2871 dma_unmap_addr( 2871 dma_unmap_addr(
2872 &txr->tx_buf_ring[TX_RING_IDX(sw_cons)], 2872 &txr->tx_buf_ring[TX_RING_IDX(sw_cons)],
2873 mapping), 2873 mapping),
2874 skb_shinfo(skb)->frags[i].size, 2874 skb_frag_size(&skb_shinfo(skb)->frags[i]),
2875 PCI_DMA_TODEVICE); 2875 PCI_DMA_TODEVICE);
2876 } 2876 }
2877 2877
@@ -3049,7 +3049,7 @@ bnx2_rx_skb(struct bnx2 *bp, struct bnx2_rx_ring_info *rxr, struct sk_buff *skb,
3049 } else { 3049 } else {
3050 skb_frag_t *frag = 3050 skb_frag_t *frag =
3051 &skb_shinfo(skb)->frags[i - 1]; 3051 &skb_shinfo(skb)->frags[i - 1];
3052 frag->size -= tail; 3052 skb_frag_size_sub(frag, tail);
3053 skb->data_len -= tail; 3053 skb->data_len -= tail;
3054 } 3054 }
3055 return 0; 3055 return 0;
@@ -5395,7 +5395,7 @@ bnx2_free_tx_skbs(struct bnx2 *bp)
5395 tx_buf = &txr->tx_buf_ring[TX_RING_IDX(j)]; 5395 tx_buf = &txr->tx_buf_ring[TX_RING_IDX(j)];
5396 dma_unmap_page(&bp->pdev->dev, 5396 dma_unmap_page(&bp->pdev->dev,
5397 dma_unmap_addr(tx_buf, mapping), 5397 dma_unmap_addr(tx_buf, mapping),
5398 skb_shinfo(skb)->frags[k].size, 5398 skb_frag_size(&skb_shinfo(skb)->frags[k]),
5399 PCI_DMA_TODEVICE); 5399 PCI_DMA_TODEVICE);
5400 } 5400 }
5401 dev_kfree_skb(skb); 5401 dev_kfree_skb(skb);
@@ -6530,13 +6530,13 @@ bnx2_start_xmit(struct sk_buff *skb, struct net_device *dev)
6530 tx_buf->is_gso = skb_is_gso(skb); 6530 tx_buf->is_gso = skb_is_gso(skb);
6531 6531
6532 for (i = 0; i < last_frag; i++) { 6532 for (i = 0; i < last_frag; i++) {
6533 skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; 6533 const skb_frag_t *frag = &skb_shinfo(skb)->frags[i];
6534 6534
6535 prod = NEXT_TX_BD(prod); 6535 prod = NEXT_TX_BD(prod);
6536 ring_prod = TX_RING_IDX(prod); 6536 ring_prod = TX_RING_IDX(prod);
6537 txbd = &txr->tx_desc_ring[ring_prod]; 6537 txbd = &txr->tx_desc_ring[ring_prod];
6538 6538
6539 len = frag->size; 6539 len = skb_frag_size(frag);
6540 mapping = skb_frag_dma_map(&bp->pdev->dev, frag, 0, len, 6540 mapping = skb_frag_dma_map(&bp->pdev->dev, frag, 0, len,
6541 DMA_TO_DEVICE); 6541 DMA_TO_DEVICE);
6542 if (dma_mapping_error(&bp->pdev->dev, mapping)) 6542 if (dma_mapping_error(&bp->pdev->dev, mapping))
@@ -6594,7 +6594,7 @@ dma_error:
6594 ring_prod = TX_RING_IDX(prod); 6594 ring_prod = TX_RING_IDX(prod);
6595 tx_buf = &txr->tx_buf_ring[ring_prod]; 6595 tx_buf = &txr->tx_buf_ring[ring_prod];
6596 dma_unmap_page(&bp->pdev->dev, dma_unmap_addr(tx_buf, mapping), 6596 dma_unmap_page(&bp->pdev->dev, dma_unmap_addr(tx_buf, mapping),
6597 skb_shinfo(skb)->frags[i].size, 6597 skb_frag_size(&skb_shinfo(skb)->frags[i]),
6598 PCI_DMA_TODEVICE); 6598 PCI_DMA_TODEVICE);
6599 } 6599 }
6600 6600