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
@@ -2179,7 +2179,7 @@ static void atl1c_tx_map(struct atl1c_adapter *adapter,
|
||||
memcpy(use_tpd, tpd, sizeof(struct atl1c_tpd_desc));
|
||||
|
||||
buffer_info = atl1c_get_tx_buffer(adapter, use_tpd);
|
||||
buffer_info->length = frag->size;
|
||||
buffer_info->length = skb_frag_size(frag);
|
||||
buffer_info->dma = skb_frag_dma_map(&adapter->pdev->dev,
|
||||
frag, 0,
|
||||
buffer_info->length,
|
||||
|
@@ -1593,7 +1593,7 @@ static u16 atl1e_cal_tdp_req(const struct sk_buff *skb)
|
||||
u16 proto_hdr_len = 0;
|
||||
|
||||
for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) {
|
||||
fg_size = skb_shinfo(skb)->frags[i].size;
|
||||
fg_size = skb_frag_size(&skb_shinfo(skb)->frags[i]);
|
||||
tpd_req += ((fg_size + MAX_TX_BUF_LEN - 1) >> MAX_TX_BUF_SHIFT);
|
||||
}
|
||||
|
||||
@@ -1744,12 +1744,12 @@ static void atl1e_tx_map(struct atl1e_adapter *adapter,
|
||||
}
|
||||
|
||||
for (f = 0; f < nr_frags; f++) {
|
||||
struct skb_frag_struct *frag;
|
||||
const struct skb_frag_struct *frag;
|
||||
u16 i;
|
||||
u16 seg_num;
|
||||
|
||||
frag = &skb_shinfo(skb)->frags[f];
|
||||
buf_len = frag->size;
|
||||
buf_len = skb_frag_size(frag);
|
||||
|
||||
seg_num = (buf_len + MAX_TX_BUF_LEN - 1) / MAX_TX_BUF_LEN;
|
||||
for (i = 0; i < seg_num; i++) {
|
||||
|
@@ -2267,11 +2267,11 @@ static void atl1_tx_map(struct atl1_adapter *adapter, struct sk_buff *skb,
|
||||
}
|
||||
|
||||
for (f = 0; f < nr_frags; f++) {
|
||||
struct skb_frag_struct *frag;
|
||||
const struct skb_frag_struct *frag;
|
||||
u16 i, nseg;
|
||||
|
||||
frag = &skb_shinfo(skb)->frags[f];
|
||||
buf_len = frag->size;
|
||||
buf_len = skb_frag_size(frag);
|
||||
|
||||
nseg = (buf_len + ATL1_MAX_TX_BUF_LEN - 1) /
|
||||
ATL1_MAX_TX_BUF_LEN;
|
||||
@@ -2356,7 +2356,6 @@ static netdev_tx_t atl1_xmit_frame(struct sk_buff *skb,
|
||||
int count = 1;
|
||||
int ret_val;
|
||||
struct tx_packet_desc *ptpd;
|
||||
u16 frag_size;
|
||||
u16 vlan_tag;
|
||||
unsigned int nr_frags = 0;
|
||||
unsigned int mss = 0;
|
||||
@@ -2372,10 +2371,9 @@ static netdev_tx_t atl1_xmit_frame(struct sk_buff *skb,
|
||||
|
||||
nr_frags = skb_shinfo(skb)->nr_frags;
|
||||
for (f = 0; f < nr_frags; f++) {
|
||||
frag_size = skb_shinfo(skb)->frags[f].size;
|
||||
if (frag_size)
|
||||
count += (frag_size + ATL1_MAX_TX_BUF_LEN - 1) /
|
||||
ATL1_MAX_TX_BUF_LEN;
|
||||
unsigned int f_size = skb_frag_size(&skb_shinfo(skb)->frags[f]);
|
||||
count += (f_size + ATL1_MAX_TX_BUF_LEN - 1) /
|
||||
ATL1_MAX_TX_BUF_LEN;
|
||||
}
|
||||
|
||||
mss = skb_shinfo(skb)->gso_size;
|
||||
|
Reference in New Issue
Block a user