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>
This commit is contained in:

committed by
David S. Miller

parent
dd767856a3
commit
9e903e0852
@@ -2051,7 +2051,7 @@ static int cas_rx_process_pkt(struct cas *cp, struct cas_rx_comp *rxc,
|
||||
__skb_frag_set_page(frag, page->buffer);
|
||||
__skb_frag_ref(frag);
|
||||
frag->page_offset = off;
|
||||
frag->size = hlen - swivel;
|
||||
skb_frag_size_set(frag, hlen - swivel);
|
||||
|
||||
/* any more data? */
|
||||
if ((words[0] & RX_COMP1_SPLIT_PKT) && ((dlen -= hlen) > 0)) {
|
||||
@@ -2075,7 +2075,7 @@ static int cas_rx_process_pkt(struct cas *cp, struct cas_rx_comp *rxc,
|
||||
__skb_frag_set_page(frag, page->buffer);
|
||||
__skb_frag_ref(frag);
|
||||
frag->page_offset = 0;
|
||||
frag->size = hlen;
|
||||
skb_frag_size_set(frag, hlen);
|
||||
RX_USED_ADD(page, hlen + cp->crc_size);
|
||||
}
|
||||
|
||||
@@ -2826,9 +2826,9 @@ static inline int cas_xmit_tx_ringN(struct cas *cp, int ring,
|
||||
entry = TX_DESC_NEXT(ring, entry);
|
||||
|
||||
for (frag = 0; frag < nr_frags; frag++) {
|
||||
skb_frag_t *fragp = &skb_shinfo(skb)->frags[frag];
|
||||
const skb_frag_t *fragp = &skb_shinfo(skb)->frags[frag];
|
||||
|
||||
len = fragp->size;
|
||||
len = skb_frag_size(fragp);
|
||||
mapping = skb_frag_dma_map(&cp->pdev->dev, fragp, 0, len,
|
||||
DMA_TO_DEVICE);
|
||||
|
||||
|
@@ -3594,7 +3594,7 @@ static int release_tx_packet(struct niu *np, struct tx_ring_info *rp, int idx)
|
||||
tb = &rp->tx_buffs[idx];
|
||||
BUG_ON(tb->skb != NULL);
|
||||
np->ops->unmap_page(np->device, tb->mapping,
|
||||
skb_shinfo(skb)->frags[i].size,
|
||||
skb_frag_size(&skb_shinfo(skb)->frags[i]),
|
||||
DMA_TO_DEVICE);
|
||||
idx = NEXT_TX(rp, idx);
|
||||
}
|
||||
@@ -6727,9 +6727,9 @@ static netdev_tx_t niu_start_xmit(struct sk_buff *skb,
|
||||
}
|
||||
|
||||
for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) {
|
||||
skb_frag_t *frag = &skb_shinfo(skb)->frags[i];
|
||||
const skb_frag_t *frag = &skb_shinfo(skb)->frags[i];
|
||||
|
||||
len = frag->size;
|
||||
len = skb_frag_size(frag);
|
||||
mapping = np->ops->map_page(np->device, skb_frag_page(frag),
|
||||
frag->page_offset, len,
|
||||
DMA_TO_DEVICE);
|
||||
|
@@ -1065,12 +1065,12 @@ static netdev_tx_t gem_start_xmit(struct sk_buff *skb,
|
||||
entry = NEXT_TX(entry);
|
||||
|
||||
for (frag = 0; frag < skb_shinfo(skb)->nr_frags; frag++) {
|
||||
skb_frag_t *this_frag = &skb_shinfo(skb)->frags[frag];
|
||||
const skb_frag_t *this_frag = &skb_shinfo(skb)->frags[frag];
|
||||
u32 len;
|
||||
dma_addr_t mapping;
|
||||
u64 this_ctrl;
|
||||
|
||||
len = this_frag->size;
|
||||
len = skb_frag_size(this_frag);
|
||||
mapping = skb_frag_dma_map(&gp->pdev->dev, this_frag,
|
||||
0, len, DMA_TO_DEVICE);
|
||||
this_ctrl = ctrl;
|
||||
|
@@ -2305,10 +2305,10 @@ static netdev_tx_t happy_meal_start_xmit(struct sk_buff *skb,
|
||||
entry = NEXT_TX(entry);
|
||||
|
||||
for (frag = 0; frag < skb_shinfo(skb)->nr_frags; frag++) {
|
||||
skb_frag_t *this_frag = &skb_shinfo(skb)->frags[frag];
|
||||
const skb_frag_t *this_frag = &skb_shinfo(skb)->frags[frag];
|
||||
u32 len, mapping, this_txflags;
|
||||
|
||||
len = this_frag->size;
|
||||
len = skb_frag_size(this_frag);
|
||||
mapping = skb_frag_dma_map(hp->dma_dev, this_frag,
|
||||
0, len, DMA_TO_DEVICE);
|
||||
this_txflags = tx_flags;
|
||||
|
Reference in New Issue
Block a user