diff options
author | Matthew Wilcox (Oracle) <willy@infradead.org> | 2019-07-22 23:08:25 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-07-22 23:47:56 -0400 |
commit | d7840976e3915669382c62ddd1700960f348328e (patch) | |
tree | 56dc7cc1ae1efc1c947fec907f1bf6775d85a774 | |
parent | 7e24b4ed5ac4321e41415b0c6f0f8a8ac14852b2 (diff) |
net: Use skb accessors in network drivers
In preparation for unifying the skb_frag and bio_vec, use the fine
accessors which already exist and use skb_frag_t instead of
struct skb_frag_struct.
Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
69 files changed, 149 insertions, 164 deletions
diff --git a/drivers/crypto/chelsio/chtls/chtls_io.c b/drivers/crypto/chelsio/chtls/chtls_io.c index 551bca6fef24..c70cb5f272cf 100644 --- a/drivers/crypto/chelsio/chtls/chtls_io.c +++ b/drivers/crypto/chelsio/chtls/chtls_io.c | |||
@@ -1134,7 +1134,9 @@ copy: | |||
1134 | } | 1134 | } |
1135 | /* Update the skb. */ | 1135 | /* Update the skb. */ |
1136 | if (merge) { | 1136 | if (merge) { |
1137 | skb_shinfo(skb)->frags[i - 1].size += copy; | 1137 | skb_frag_size_add( |
1138 | &skb_shinfo(skb)->frags[i - 1], | ||
1139 | copy); | ||
1138 | } else { | 1140 | } else { |
1139 | skb_fill_page_desc(skb, i, page, off, copy); | 1141 | skb_fill_page_desc(skb, i, page, off, copy); |
1140 | if (off + copy < pg_size) { | 1142 | if (off + copy < pg_size) { |
@@ -1247,7 +1249,7 @@ new_buf: | |||
1247 | 1249 | ||
1248 | i = skb_shinfo(skb)->nr_frags; | 1250 | i = skb_shinfo(skb)->nr_frags; |
1249 | if (skb_can_coalesce(skb, i, page, offset)) { | 1251 | if (skb_can_coalesce(skb, i, page, offset)) { |
1250 | skb_shinfo(skb)->frags[i - 1].size += copy; | 1252 | skb_frag_size_add(&skb_shinfo(skb)->frags[i - 1], copy); |
1251 | } else if (i < MAX_SKB_FRAGS) { | 1253 | } else if (i < MAX_SKB_FRAGS) { |
1252 | get_page(page); | 1254 | get_page(page); |
1253 | skb_fill_page_desc(skb, i, page, offset, copy); | 1255 | skb_fill_page_desc(skb, i, page, offset, copy); |
diff --git a/drivers/hsi/clients/ssi_protocol.c b/drivers/hsi/clients/ssi_protocol.c index 9aeed98b87a1..c9e3f928b93d 100644 --- a/drivers/hsi/clients/ssi_protocol.c +++ b/drivers/hsi/clients/ssi_protocol.c | |||
@@ -181,7 +181,8 @@ static void ssip_skb_to_msg(struct sk_buff *skb, struct hsi_msg *msg) | |||
181 | sg = sg_next(sg); | 181 | sg = sg_next(sg); |
182 | BUG_ON(!sg); | 182 | BUG_ON(!sg); |
183 | frag = &skb_shinfo(skb)->frags[i]; | 183 | frag = &skb_shinfo(skb)->frags[i]; |
184 | sg_set_page(sg, frag->page.p, frag->size, frag->page_offset); | 184 | sg_set_page(sg, skb_frag_page(frag), skb_frag_size(frag), |
185 | frag->page_offset); | ||
185 | } | 186 | } |
186 | } | 187 | } |
187 | 188 | ||
diff --git a/drivers/infiniband/hw/hfi1/vnic_sdma.c b/drivers/infiniband/hw/hfi1/vnic_sdma.c index af1b1ffcb38e..05a140504a99 100644 --- a/drivers/infiniband/hw/hfi1/vnic_sdma.c +++ b/drivers/infiniband/hw/hfi1/vnic_sdma.c | |||
@@ -102,7 +102,7 @@ static noinline int build_vnic_ulp_payload(struct sdma_engine *sde, | |||
102 | goto bail_txadd; | 102 | goto bail_txadd; |
103 | 103 | ||
104 | for (i = 0; i < skb_shinfo(tx->skb)->nr_frags; i++) { | 104 | for (i = 0; i < skb_shinfo(tx->skb)->nr_frags; i++) { |
105 | struct skb_frag_struct *frag = &skb_shinfo(tx->skb)->frags[i]; | 105 | skb_frag_t *frag = &skb_shinfo(tx->skb)->frags[i]; |
106 | 106 | ||
107 | /* combine physically continuous fragments later? */ | 107 | /* combine physically continuous fragments later? */ |
108 | ret = sdma_txadd_page(sde->dd, | 108 | ret = sdma_txadd_page(sde->dd, |
diff --git a/drivers/net/ethernet/3com/3c59x.c b/drivers/net/ethernet/3com/3c59x.c index 147051404194..7be91e896f2d 100644 --- a/drivers/net/ethernet/3com/3c59x.c +++ b/drivers/net/ethernet/3com/3c59x.c | |||
@@ -2175,7 +2175,7 @@ boomerang_start_xmit(struct sk_buff *skb, struct net_device *dev) | |||
2175 | 2175 | ||
2176 | dma_addr = skb_frag_dma_map(vp->gendev, frag, | 2176 | dma_addr = skb_frag_dma_map(vp->gendev, frag, |
2177 | 0, | 2177 | 0, |
2178 | frag->size, | 2178 | skb_frag_size(frag), |
2179 | DMA_TO_DEVICE); | 2179 | DMA_TO_DEVICE); |
2180 | if (dma_mapping_error(vp->gendev, dma_addr)) { | 2180 | if (dma_mapping_error(vp->gendev, dma_addr)) { |
2181 | for(i = i-1; i >= 0; i--) | 2181 | for(i = i-1; i >= 0; i--) |
diff --git a/drivers/net/ethernet/agere/et131x.c b/drivers/net/ethernet/agere/et131x.c index ea34bcb868b5..e43d922f043e 100644 --- a/drivers/net/ethernet/agere/et131x.c +++ b/drivers/net/ethernet/agere/et131x.c | |||
@@ -2426,7 +2426,7 @@ static int nic_send_packet(struct et131x_adapter *adapter, struct tcb *tcb) | |||
2426 | u32 thiscopy, remainder; | 2426 | u32 thiscopy, remainder; |
2427 | struct sk_buff *skb = tcb->skb; | 2427 | struct sk_buff *skb = tcb->skb; |
2428 | u32 nr_frags = skb_shinfo(skb)->nr_frags + 1; | 2428 | u32 nr_frags = skb_shinfo(skb)->nr_frags + 1; |
2429 | struct skb_frag_struct *frags = &skb_shinfo(skb)->frags[0]; | 2429 | skb_frag_t *frags = &skb_shinfo(skb)->frags[0]; |
2430 | struct phy_device *phydev = adapter->netdev->phydev; | 2430 | struct phy_device *phydev = adapter->netdev->phydev; |
2431 | dma_addr_t dma_addr; | 2431 | dma_addr_t dma_addr; |
2432 | struct tx_ring *tx_ring = &adapter->tx_ring; | 2432 | struct tx_ring *tx_ring = &adapter->tx_ring; |
@@ -2488,11 +2488,11 @@ static int nic_send_packet(struct et131x_adapter *adapter, struct tcb *tcb) | |||
2488 | frag++; | 2488 | frag++; |
2489 | } | 2489 | } |
2490 | } else { | 2490 | } else { |
2491 | desc[frag].len_vlan = frags[i - 1].size; | 2491 | desc[frag].len_vlan = skb_frag_size(&frags[i - 1]); |
2492 | dma_addr = skb_frag_dma_map(&adapter->pdev->dev, | 2492 | dma_addr = skb_frag_dma_map(&adapter->pdev->dev, |
2493 | &frags[i - 1], | 2493 | &frags[i - 1], |
2494 | 0, | 2494 | 0, |
2495 | frags[i - 1].size, | 2495 | desc[frag].len_vlan, |
2496 | DMA_TO_DEVICE); | 2496 | DMA_TO_DEVICE); |
2497 | desc[frag].addr_lo = lower_32_bits(dma_addr); | 2497 | desc[frag].addr_lo = lower_32_bits(dma_addr); |
2498 | desc[frag].addr_hi = upper_32_bits(dma_addr); | 2498 | desc[frag].addr_hi = upper_32_bits(dma_addr); |
diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-desc.c b/drivers/net/ethernet/amd/xgbe/xgbe-desc.c index 533094233659..230726d7b74f 100644 --- a/drivers/net/ethernet/amd/xgbe/xgbe-desc.c +++ b/drivers/net/ethernet/amd/xgbe/xgbe-desc.c | |||
@@ -526,7 +526,7 @@ static int xgbe_map_tx_skb(struct xgbe_channel *channel, struct sk_buff *skb) | |||
526 | struct xgbe_ring *ring = channel->tx_ring; | 526 | struct xgbe_ring *ring = channel->tx_ring; |
527 | struct xgbe_ring_data *rdata; | 527 | struct xgbe_ring_data *rdata; |
528 | struct xgbe_packet_data *packet; | 528 | struct xgbe_packet_data *packet; |
529 | struct skb_frag_struct *frag; | 529 | skb_frag_t *frag; |
530 | dma_addr_t skb_dma; | 530 | dma_addr_t skb_dma; |
531 | unsigned int start_index, cur_index; | 531 | unsigned int start_index, cur_index; |
532 | unsigned int offset, tso, vlan, datalen, len; | 532 | unsigned int offset, tso, vlan, datalen, len; |
diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-drv.c b/drivers/net/ethernet/amd/xgbe/xgbe-drv.c index 3dd0cecddba8..98f8f2033154 100644 --- a/drivers/net/ethernet/amd/xgbe/xgbe-drv.c +++ b/drivers/net/ethernet/amd/xgbe/xgbe-drv.c | |||
@@ -1833,7 +1833,7 @@ static void xgbe_packet_info(struct xgbe_prv_data *pdata, | |||
1833 | struct xgbe_ring *ring, struct sk_buff *skb, | 1833 | struct xgbe_ring *ring, struct sk_buff *skb, |
1834 | struct xgbe_packet_data *packet) | 1834 | struct xgbe_packet_data *packet) |
1835 | { | 1835 | { |
1836 | struct skb_frag_struct *frag; | 1836 | skb_frag_t *frag; |
1837 | unsigned int context_desc; | 1837 | unsigned int context_desc; |
1838 | unsigned int len; | 1838 | unsigned int len; |
1839 | unsigned int i; | 1839 | unsigned int i; |
diff --git a/drivers/net/ethernet/apm/xgene/xgene_enet_main.c b/drivers/net/ethernet/apm/xgene/xgene_enet_main.c index 10b1c053e70a..949bff4d2921 100644 --- a/drivers/net/ethernet/apm/xgene/xgene_enet_main.c +++ b/drivers/net/ethernet/apm/xgene/xgene_enet_main.c | |||
@@ -340,7 +340,8 @@ static int xgene_enet_work_msg(struct sk_buff *skb, u64 *hopinfo) | |||
340 | nr_frags = skb_shinfo(skb)->nr_frags; | 340 | nr_frags = skb_shinfo(skb)->nr_frags; |
341 | 341 | ||
342 | for (i = 0; i < 2 && i < nr_frags; i++) | 342 | for (i = 0; i < 2 && i < nr_frags; i++) |
343 | len += skb_shinfo(skb)->frags[i].size; | 343 | len += skb_frag_size( |
344 | &skb_shinfo(skb)->frags[i]); | ||
344 | 345 | ||
345 | /* HW requires header must reside in 3 buffer */ | 346 | /* HW requires header must reside in 3 buffer */ |
346 | if (unlikely(hdr_len > len)) { | 347 | if (unlikely(hdr_len > len)) { |
diff --git a/drivers/net/ethernet/atheros/alx/main.c b/drivers/net/ethernet/atheros/alx/main.c index e3538ba7d0e7..a3ec738da336 100644 --- a/drivers/net/ethernet/atheros/alx/main.c +++ b/drivers/net/ethernet/atheros/alx/main.c | |||
@@ -1465,9 +1465,7 @@ static int alx_map_tx_skb(struct alx_tx_queue *txq, struct sk_buff *skb) | |||
1465 | tpd->len = cpu_to_le16(maplen); | 1465 | tpd->len = cpu_to_le16(maplen); |
1466 | 1466 | ||
1467 | for (f = 0; f < skb_shinfo(skb)->nr_frags; f++) { | 1467 | for (f = 0; f < skb_shinfo(skb)->nr_frags; f++) { |
1468 | struct skb_frag_struct *frag; | 1468 | skb_frag_t *frag = &skb_shinfo(skb)->frags[f]; |
1469 | |||
1470 | frag = &skb_shinfo(skb)->frags[f]; | ||
1471 | 1469 | ||
1472 | if (++txq->write_idx == txq->count) | 1470 | if (++txq->write_idx == txq->count) |
1473 | txq->write_idx = 0; | 1471 | txq->write_idx = 0; |
diff --git a/drivers/net/ethernet/atheros/atl1c/atl1c_main.c b/drivers/net/ethernet/atheros/atl1c/atl1c_main.c index be7f9cebb675..179ad62a2bd2 100644 --- a/drivers/net/ethernet/atheros/atl1c/atl1c_main.c +++ b/drivers/net/ethernet/atheros/atl1c/atl1c_main.c | |||
@@ -2150,9 +2150,7 @@ static int atl1c_tx_map(struct atl1c_adapter *adapter, | |||
2150 | } | 2150 | } |
2151 | 2151 | ||
2152 | for (f = 0; f < nr_frags; f++) { | 2152 | for (f = 0; f < nr_frags; f++) { |
2153 | struct skb_frag_struct *frag; | 2153 | skb_frag_t *frag = &skb_shinfo(skb)->frags[f]; |
2154 | |||
2155 | frag = &skb_shinfo(skb)->frags[f]; | ||
2156 | 2154 | ||
2157 | use_tpd = atl1c_get_tpd(adapter, type); | 2155 | use_tpd = atl1c_get_tpd(adapter, type); |
2158 | memcpy(use_tpd, tpd, sizeof(struct atl1c_tpd_desc)); | 2156 | memcpy(use_tpd, tpd, sizeof(struct atl1c_tpd_desc)); |
diff --git a/drivers/net/ethernet/atheros/atl1e/atl1e_main.c b/drivers/net/ethernet/atheros/atl1e/atl1e_main.c index 7f14e010bfeb..4f7b65825c15 100644 --- a/drivers/net/ethernet/atheros/atl1e/atl1e_main.c +++ b/drivers/net/ethernet/atheros/atl1e/atl1e_main.c | |||
@@ -1770,11 +1770,10 @@ static int atl1e_tx_map(struct atl1e_adapter *adapter, | |||
1770 | } | 1770 | } |
1771 | 1771 | ||
1772 | for (f = 0; f < nr_frags; f++) { | 1772 | for (f = 0; f < nr_frags; f++) { |
1773 | const struct skb_frag_struct *frag; | 1773 | const skb_frag_t *frag = &skb_shinfo(skb)->frags[f]; |
1774 | u16 i; | 1774 | u16 i; |
1775 | u16 seg_num; | 1775 | u16 seg_num; |
1776 | 1776 | ||
1777 | frag = &skb_shinfo(skb)->frags[f]; | ||
1778 | buf_len = skb_frag_size(frag); | 1777 | buf_len = skb_frag_size(frag); |
1779 | 1778 | ||
1780 | seg_num = (buf_len + MAX_TX_BUF_LEN - 1) / MAX_TX_BUF_LEN; | 1779 | seg_num = (buf_len + MAX_TX_BUF_LEN - 1) / MAX_TX_BUF_LEN; |
diff --git a/drivers/net/ethernet/atheros/atlx/atl1.c b/drivers/net/ethernet/atheros/atlx/atl1.c index b5c6dc914720..5f420c17bf3e 100644 --- a/drivers/net/ethernet/atheros/atlx/atl1.c +++ b/drivers/net/ethernet/atheros/atlx/atl1.c | |||
@@ -2256,10 +2256,9 @@ static void atl1_tx_map(struct atl1_adapter *adapter, struct sk_buff *skb, | |||
2256 | } | 2256 | } |
2257 | 2257 | ||
2258 | for (f = 0; f < nr_frags; f++) { | 2258 | for (f = 0; f < nr_frags; f++) { |
2259 | const struct skb_frag_struct *frag; | 2259 | const skb_frag_t *frag = &skb_shinfo(skb)->frags[f]; |
2260 | u16 i, nseg; | 2260 | u16 i, nseg; |
2261 | 2261 | ||
2262 | frag = &skb_shinfo(skb)->frags[f]; | ||
2263 | buf_len = skb_frag_size(frag); | 2262 | buf_len = skb_frag_size(frag); |
2264 | 2263 | ||
2265 | nseg = (buf_len + ATL1_MAX_TX_BUF_LEN - 1) / | 2264 | nseg = (buf_len + ATL1_MAX_TX_BUF_LEN - 1) / |
diff --git a/drivers/net/ethernet/broadcom/bgmac.c b/drivers/net/ethernet/broadcom/bgmac.c index 4632dd5dbad1..148734b166f0 100644 --- a/drivers/net/ethernet/broadcom/bgmac.c +++ b/drivers/net/ethernet/broadcom/bgmac.c | |||
@@ -172,7 +172,7 @@ static netdev_tx_t bgmac_dma_tx_add(struct bgmac *bgmac, | |||
172 | flags = 0; | 172 | flags = 0; |
173 | 173 | ||
174 | for (i = 0; i < nr_frags; i++) { | 174 | for (i = 0; i < nr_frags; i++) { |
175 | struct skb_frag_struct *frag = &skb_shinfo(skb)->frags[i]; | 175 | skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; |
176 | int len = skb_frag_size(frag); | 176 | int len = skb_frag_size(frag); |
177 | 177 | ||
178 | index = (index + 1) % BGMAC_TX_RING_SLOTS; | 178 | index = (index + 1) % BGMAC_TX_RING_SLOTS; |
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c index 7134d2c3eb1c..74dd28b82105 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c | |||
@@ -888,7 +888,7 @@ static struct sk_buff *bnxt_rx_page_skb(struct bnxt *bp, | |||
888 | { | 888 | { |
889 | unsigned int payload = offset_and_len >> 16; | 889 | unsigned int payload = offset_and_len >> 16; |
890 | unsigned int len = offset_and_len & 0xffff; | 890 | unsigned int len = offset_and_len & 0xffff; |
891 | struct skb_frag_struct *frag; | 891 | skb_frag_t *frag; |
892 | struct page *page = data; | 892 | struct page *page = data; |
893 | u16 prod = rxr->rx_prod; | 893 | u16 prod = rxr->rx_prod; |
894 | struct sk_buff *skb; | 894 | struct sk_buff *skb; |
diff --git a/drivers/net/ethernet/brocade/bna/bnad.c b/drivers/net/ethernet/brocade/bna/bnad.c index 7767ae6fa1fd..e338272931d1 100644 --- a/drivers/net/ethernet/brocade/bna/bnad.c +++ b/drivers/net/ethernet/brocade/bna/bnad.c | |||
@@ -3032,7 +3032,7 @@ bnad_start_xmit(struct sk_buff *skb, struct net_device *netdev) | |||
3032 | head_unmap->nvecs++; | 3032 | head_unmap->nvecs++; |
3033 | 3033 | ||
3034 | for (i = 0, vect_id = 0; i < vectors - 1; i++) { | 3034 | for (i = 0, vect_id = 0; i < vectors - 1; i++) { |
3035 | const struct skb_frag_struct *frag = &skb_shinfo(skb)->frags[i]; | 3035 | const skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; |
3036 | u32 size = skb_frag_size(frag); | 3036 | u32 size = skb_frag_size(frag); |
3037 | 3037 | ||
3038 | if (unlikely(size == 0)) { | 3038 | if (unlikely(size == 0)) { |
diff --git a/drivers/net/ethernet/calxeda/xgmac.c b/drivers/net/ethernet/calxeda/xgmac.c index 99f49d059414..f96a42af1014 100644 --- a/drivers/net/ethernet/calxeda/xgmac.c +++ b/drivers/net/ethernet/calxeda/xgmac.c | |||
@@ -1104,7 +1104,7 @@ static netdev_tx_t xgmac_xmit(struct sk_buff *skb, struct net_device *dev) | |||
1104 | for (i = 0; i < nfrags; i++) { | 1104 | for (i = 0; i < nfrags; i++) { |
1105 | skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; | 1105 | skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; |
1106 | 1106 | ||
1107 | len = frag->size; | 1107 | len = skb_frag_size(frag); |
1108 | 1108 | ||
1109 | paddr = skb_frag_dma_map(priv->device, frag, 0, len, | 1109 | paddr = skb_frag_dma_map(priv->device, frag, 0, len, |
1110 | DMA_TO_DEVICE); | 1110 | DMA_TO_DEVICE); |
diff --git a/drivers/net/ethernet/cavium/liquidio/lio_main.c b/drivers/net/ethernet/cavium/liquidio/lio_main.c index eab805579f96..7f3b2e3b0868 100644 --- a/drivers/net/ethernet/cavium/liquidio/lio_main.c +++ b/drivers/net/ethernet/cavium/liquidio/lio_main.c | |||
@@ -1492,11 +1492,11 @@ static void free_netsgbuf(void *buf) | |||
1492 | 1492 | ||
1493 | i = 1; | 1493 | i = 1; |
1494 | while (frags--) { | 1494 | while (frags--) { |
1495 | struct skb_frag_struct *frag = &skb_shinfo(skb)->frags[i - 1]; | 1495 | skb_frag_t *frag = &skb_shinfo(skb)->frags[i - 1]; |
1496 | 1496 | ||
1497 | pci_unmap_page((lio->oct_dev)->pci_dev, | 1497 | pci_unmap_page((lio->oct_dev)->pci_dev, |
1498 | g->sg[(i >> 2)].ptr[(i & 3)], | 1498 | g->sg[(i >> 2)].ptr[(i & 3)], |
1499 | frag->size, DMA_TO_DEVICE); | 1499 | skb_frag_size(frag), DMA_TO_DEVICE); |
1500 | i++; | 1500 | i++; |
1501 | } | 1501 | } |
1502 | 1502 | ||
@@ -1535,11 +1535,11 @@ static void free_netsgbuf_with_resp(void *buf) | |||
1535 | 1535 | ||
1536 | i = 1; | 1536 | i = 1; |
1537 | while (frags--) { | 1537 | while (frags--) { |
1538 | struct skb_frag_struct *frag = &skb_shinfo(skb)->frags[i - 1]; | 1538 | skb_frag_t *frag = &skb_shinfo(skb)->frags[i - 1]; |
1539 | 1539 | ||
1540 | pci_unmap_page((lio->oct_dev)->pci_dev, | 1540 | pci_unmap_page((lio->oct_dev)->pci_dev, |
1541 | g->sg[(i >> 2)].ptr[(i & 3)], | 1541 | g->sg[(i >> 2)].ptr[(i & 3)], |
1542 | frag->size, DMA_TO_DEVICE); | 1542 | skb_frag_size(frag), DMA_TO_DEVICE); |
1543 | i++; | 1543 | i++; |
1544 | } | 1544 | } |
1545 | 1545 | ||
@@ -2424,7 +2424,7 @@ static netdev_tx_t liquidio_xmit(struct sk_buff *skb, struct net_device *netdev) | |||
2424 | 2424 | ||
2425 | } else { | 2425 | } else { |
2426 | int i, frags; | 2426 | int i, frags; |
2427 | struct skb_frag_struct *frag; | 2427 | skb_frag_t *frag; |
2428 | struct octnic_gather *g; | 2428 | struct octnic_gather *g; |
2429 | 2429 | ||
2430 | spin_lock(&lio->glist_lock[q_idx]); | 2430 | spin_lock(&lio->glist_lock[q_idx]); |
@@ -2462,11 +2462,9 @@ static netdev_tx_t liquidio_xmit(struct sk_buff *skb, struct net_device *netdev) | |||
2462 | frag = &skb_shinfo(skb)->frags[i - 1]; | 2462 | frag = &skb_shinfo(skb)->frags[i - 1]; |
2463 | 2463 | ||
2464 | g->sg[(i >> 2)].ptr[(i & 3)] = | 2464 | g->sg[(i >> 2)].ptr[(i & 3)] = |
2465 | dma_map_page(&oct->pci_dev->dev, | 2465 | skb_frag_dma_map(&oct->pci_dev->dev, |
2466 | frag->page.p, | 2466 | frag, 0, skb_frag_size(frag), |
2467 | frag->page_offset, | 2467 | DMA_TO_DEVICE); |
2468 | frag->size, | ||
2469 | DMA_TO_DEVICE); | ||
2470 | 2468 | ||
2471 | if (dma_mapping_error(&oct->pci_dev->dev, | 2469 | if (dma_mapping_error(&oct->pci_dev->dev, |
2472 | g->sg[i >> 2].ptr[i & 3])) { | 2470 | g->sg[i >> 2].ptr[i & 3])) { |
@@ -2478,7 +2476,7 @@ static netdev_tx_t liquidio_xmit(struct sk_buff *skb, struct net_device *netdev) | |||
2478 | frag = &skb_shinfo(skb)->frags[j - 1]; | 2476 | frag = &skb_shinfo(skb)->frags[j - 1]; |
2479 | dma_unmap_page(&oct->pci_dev->dev, | 2477 | dma_unmap_page(&oct->pci_dev->dev, |
2480 | g->sg[j >> 2].ptr[j & 3], | 2478 | g->sg[j >> 2].ptr[j & 3], |
2481 | frag->size, | 2479 | skb_frag_size(frag), |
2482 | DMA_TO_DEVICE); | 2480 | DMA_TO_DEVICE); |
2483 | } | 2481 | } |
2484 | dev_err(&oct->pci_dev->dev, "%s DMA mapping error 3\n", | 2482 | dev_err(&oct->pci_dev->dev, "%s DMA mapping error 3\n", |
@@ -2486,7 +2484,8 @@ static netdev_tx_t liquidio_xmit(struct sk_buff *skb, struct net_device *netdev) | |||
2486 | return NETDEV_TX_BUSY; | 2484 | return NETDEV_TX_BUSY; |
2487 | } | 2485 | } |
2488 | 2486 | ||
2489 | add_sg_size(&g->sg[(i >> 2)], frag->size, (i & 3)); | 2487 | add_sg_size(&g->sg[(i >> 2)], skb_frag_size(frag), |
2488 | (i & 3)); | ||
2490 | i++; | 2489 | i++; |
2491 | } | 2490 | } |
2492 | 2491 | ||
diff --git a/drivers/net/ethernet/cavium/liquidio/lio_vf_main.c b/drivers/net/ethernet/cavium/liquidio/lio_vf_main.c index db0b90555acb..370d76822ee0 100644 --- a/drivers/net/ethernet/cavium/liquidio/lio_vf_main.c +++ b/drivers/net/ethernet/cavium/liquidio/lio_vf_main.c | |||
@@ -837,11 +837,11 @@ static void free_netsgbuf(void *buf) | |||
837 | 837 | ||
838 | i = 1; | 838 | i = 1; |
839 | while (frags--) { | 839 | while (frags--) { |
840 | struct skb_frag_struct *frag = &skb_shinfo(skb)->frags[i - 1]; | 840 | skb_frag_t *frag = &skb_shinfo(skb)->frags[i - 1]; |
841 | 841 | ||
842 | pci_unmap_page((lio->oct_dev)->pci_dev, | 842 | pci_unmap_page((lio->oct_dev)->pci_dev, |
843 | g->sg[(i >> 2)].ptr[(i & 3)], | 843 | g->sg[(i >> 2)].ptr[(i & 3)], |
844 | frag->size, DMA_TO_DEVICE); | 844 | skb_frag_size(frag), DMA_TO_DEVICE); |
845 | i++; | 845 | i++; |
846 | } | 846 | } |
847 | 847 | ||
@@ -881,11 +881,11 @@ static void free_netsgbuf_with_resp(void *buf) | |||
881 | 881 | ||
882 | i = 1; | 882 | i = 1; |
883 | while (frags--) { | 883 | while (frags--) { |
884 | struct skb_frag_struct *frag = &skb_shinfo(skb)->frags[i - 1]; | 884 | skb_frag_t *frag = &skb_shinfo(skb)->frags[i - 1]; |
885 | 885 | ||
886 | pci_unmap_page((lio->oct_dev)->pci_dev, | 886 | pci_unmap_page((lio->oct_dev)->pci_dev, |
887 | g->sg[(i >> 2)].ptr[(i & 3)], | 887 | g->sg[(i >> 2)].ptr[(i & 3)], |
888 | frag->size, DMA_TO_DEVICE); | 888 | skb_frag_size(frag), DMA_TO_DEVICE); |
889 | i++; | 889 | i++; |
890 | } | 890 | } |
891 | 891 | ||
@@ -1497,7 +1497,7 @@ static netdev_tx_t liquidio_xmit(struct sk_buff *skb, struct net_device *netdev) | |||
1497 | ndata.reqtype = REQTYPE_NORESP_NET; | 1497 | ndata.reqtype = REQTYPE_NORESP_NET; |
1498 | 1498 | ||
1499 | } else { | 1499 | } else { |
1500 | struct skb_frag_struct *frag; | 1500 | skb_frag_t *frag; |
1501 | struct octnic_gather *g; | 1501 | struct octnic_gather *g; |
1502 | int i, frags; | 1502 | int i, frags; |
1503 | 1503 | ||
@@ -1535,11 +1535,9 @@ static netdev_tx_t liquidio_xmit(struct sk_buff *skb, struct net_device *netdev) | |||
1535 | frag = &skb_shinfo(skb)->frags[i - 1]; | 1535 | frag = &skb_shinfo(skb)->frags[i - 1]; |
1536 | 1536 | ||
1537 | g->sg[(i >> 2)].ptr[(i & 3)] = | 1537 | g->sg[(i >> 2)].ptr[(i & 3)] = |
1538 | dma_map_page(&oct->pci_dev->dev, | 1538 | skb_frag_dma_map(&oct->pci_dev->dev, |
1539 | frag->page.p, | 1539 | frag, 0, skb_frag_size(frag), |
1540 | frag->page_offset, | 1540 | DMA_TO_DEVICE); |
1541 | frag->size, | ||
1542 | DMA_TO_DEVICE); | ||
1543 | if (dma_mapping_error(&oct->pci_dev->dev, | 1541 | if (dma_mapping_error(&oct->pci_dev->dev, |
1544 | g->sg[i >> 2].ptr[i & 3])) { | 1542 | g->sg[i >> 2].ptr[i & 3])) { |
1545 | dma_unmap_single(&oct->pci_dev->dev, | 1543 | dma_unmap_single(&oct->pci_dev->dev, |
@@ -1550,7 +1548,7 @@ static netdev_tx_t liquidio_xmit(struct sk_buff *skb, struct net_device *netdev) | |||
1550 | frag = &skb_shinfo(skb)->frags[j - 1]; | 1548 | frag = &skb_shinfo(skb)->frags[j - 1]; |
1551 | dma_unmap_page(&oct->pci_dev->dev, | 1549 | dma_unmap_page(&oct->pci_dev->dev, |
1552 | g->sg[j >> 2].ptr[j & 3], | 1550 | g->sg[j >> 2].ptr[j & 3], |
1553 | frag->size, | 1551 | skb_frag_size(frag), |
1554 | DMA_TO_DEVICE); | 1552 | DMA_TO_DEVICE); |
1555 | } | 1553 | } |
1556 | dev_err(&oct->pci_dev->dev, "%s DMA mapping error 3\n", | 1554 | dev_err(&oct->pci_dev->dev, "%s DMA mapping error 3\n", |
@@ -1558,7 +1556,8 @@ static netdev_tx_t liquidio_xmit(struct sk_buff *skb, struct net_device *netdev) | |||
1558 | return NETDEV_TX_BUSY; | 1556 | return NETDEV_TX_BUSY; |
1559 | } | 1557 | } |
1560 | 1558 | ||
1561 | add_sg_size(&g->sg[(i >> 2)], frag->size, (i & 3)); | 1559 | add_sg_size(&g->sg[(i >> 2)], skb_frag_size(frag), |
1560 | (i & 3)); | ||
1562 | i++; | 1561 | i++; |
1563 | } | 1562 | } |
1564 | 1563 | ||
diff --git a/drivers/net/ethernet/cavium/thunder/nicvf_queues.c b/drivers/net/ethernet/cavium/thunder/nicvf_queues.c index 192bc92da881..c0266a87794c 100644 --- a/drivers/net/ethernet/cavium/thunder/nicvf_queues.c +++ b/drivers/net/ethernet/cavium/thunder/nicvf_queues.c | |||
@@ -1588,9 +1588,7 @@ int nicvf_sq_append_skb(struct nicvf *nic, struct snd_queue *sq, | |||
1588 | goto doorbell; | 1588 | goto doorbell; |
1589 | 1589 | ||
1590 | for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { | 1590 | for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { |
1591 | const struct skb_frag_struct *frag; | 1591 | const skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; |
1592 | |||
1593 | frag = &skb_shinfo(skb)->frags[i]; | ||
1594 | 1592 | ||
1595 | qentry = nicvf_get_nxt_sqentry(sq, qentry); | 1593 | qentry = nicvf_get_nxt_sqentry(sq, qentry); |
1596 | size = skb_frag_size(frag); | 1594 | size = skb_frag_size(frag); |
diff --git a/drivers/net/ethernet/chelsio/cxgb3/sge.c b/drivers/net/ethernet/chelsio/cxgb3/sge.c index 89db739b7819..310a232e00f0 100644 --- a/drivers/net/ethernet/chelsio/cxgb3/sge.c +++ b/drivers/net/ethernet/chelsio/cxgb3/sge.c | |||
@@ -2132,7 +2132,7 @@ static void lro_add_page(struct adapter *adap, struct sge_qset *qs, | |||
2132 | struct port_info *pi = netdev_priv(qs->netdev); | 2132 | struct port_info *pi = netdev_priv(qs->netdev); |
2133 | struct sk_buff *skb = NULL; | 2133 | struct sk_buff *skb = NULL; |
2134 | struct cpl_rx_pkt *cpl; | 2134 | struct cpl_rx_pkt *cpl; |
2135 | struct skb_frag_struct *rx_frag; | 2135 | skb_frag_t *rx_frag; |
2136 | int nr_frags; | 2136 | int nr_frags; |
2137 | int offset = 0; | 2137 | int offset = 0; |
2138 | 2138 | ||
diff --git a/drivers/net/ethernet/cortina/gemini.c b/drivers/net/ethernet/cortina/gemini.c index 9003eb6716cd..46dd6b4886b6 100644 --- a/drivers/net/ethernet/cortina/gemini.c +++ b/drivers/net/ethernet/cortina/gemini.c | |||
@@ -1182,9 +1182,8 @@ static int gmac_map_tx_bufs(struct net_device *netdev, struct sk_buff *skb, | |||
1182 | buflen = skb_headlen(skb); | 1182 | buflen = skb_headlen(skb); |
1183 | } else { | 1183 | } else { |
1184 | skb_frag = skb_si->frags + frag; | 1184 | skb_frag = skb_si->frags + frag; |
1185 | buffer = page_address(skb_frag_page(skb_frag)) + | 1185 | buffer = skb_frag_address(skb_frag); |
1186 | skb_frag->page_offset; | 1186 | buflen = skb_frag_size(skb_frag); |
1187 | buflen = skb_frag->size; | ||
1188 | } | 1187 | } |
1189 | 1188 | ||
1190 | if (frag == last_frag) { | 1189 | if (frag == last_frag) { |
diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c index 2edb86ec9fe9..e00a94a03879 100644 --- a/drivers/net/ethernet/emulex/benet/be_main.c +++ b/drivers/net/ethernet/emulex/benet/be_main.c | |||
@@ -1014,7 +1014,7 @@ static u32 be_xmit_enqueue(struct be_adapter *adapter, struct be_tx_obj *txo, | |||
1014 | } | 1014 | } |
1015 | 1015 | ||
1016 | for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { | 1016 | for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { |
1017 | const struct skb_frag_struct *frag = &skb_shinfo(skb)->frags[i]; | 1017 | const skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; |
1018 | len = skb_frag_size(frag); | 1018 | len = skb_frag_size(frag); |
1019 | 1019 | ||
1020 | busaddr = skb_frag_dma_map(dev, frag, 0, len, DMA_TO_DEVICE); | 1020 | busaddr = skb_frag_dma_map(dev, frag, 0, len, DMA_TO_DEVICE); |
diff --git a/drivers/net/ethernet/freescale/enetc/enetc.c b/drivers/net/ethernet/freescale/enetc/enetc.c index 223709443ea4..b6ff89307409 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc.c +++ b/drivers/net/ethernet/freescale/enetc/enetc.c | |||
@@ -110,7 +110,7 @@ static int enetc_map_tx_buffs(struct enetc_bdr *tx_ring, struct sk_buff *skb, | |||
110 | int active_offloads) | 110 | int active_offloads) |
111 | { | 111 | { |
112 | struct enetc_tx_swbd *tx_swbd; | 112 | struct enetc_tx_swbd *tx_swbd; |
113 | struct skb_frag_struct *frag; | 113 | skb_frag_t *frag; |
114 | int len = skb_headlen(skb); | 114 | int len = skb_headlen(skb); |
115 | union enetc_tx_bd temp_bd; | 115 | union enetc_tx_bd temp_bd; |
116 | union enetc_tx_bd *txbd; | 116 | union enetc_tx_bd *txbd; |
diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c index e5610a4da539..c01d3ec3e9af 100644 --- a/drivers/net/ethernet/freescale/fec_main.c +++ b/drivers/net/ethernet/freescale/fec_main.c | |||
@@ -365,7 +365,7 @@ fec_enet_txq_submit_frag_skb(struct fec_enet_priv_tx_q *txq, | |||
365 | status = fec16_to_cpu(bdp->cbd_sc); | 365 | status = fec16_to_cpu(bdp->cbd_sc); |
366 | status &= ~BD_ENET_TX_STATS; | 366 | status &= ~BD_ENET_TX_STATS; |
367 | status |= (BD_ENET_TX_TC | BD_ENET_TX_READY); | 367 | status |= (BD_ENET_TX_TC | BD_ENET_TX_READY); |
368 | frag_len = skb_shinfo(skb)->frags[frag].size; | 368 | frag_len = skb_frag_size(&skb_shinfo(skb)->frags[frag]); |
369 | 369 | ||
370 | /* Handle the last BD specially */ | 370 | /* Handle the last BD specially */ |
371 | if (frag == nr_frags - 1) { | 371 | if (frag == nr_frags - 1) { |
@@ -387,7 +387,7 @@ fec_enet_txq_submit_frag_skb(struct fec_enet_priv_tx_q *txq, | |||
387 | ebdp->cbd_esc = cpu_to_fec32(estatus); | 387 | ebdp->cbd_esc = cpu_to_fec32(estatus); |
388 | } | 388 | } |
389 | 389 | ||
390 | bufaddr = page_address(this_frag->page.p) + this_frag->page_offset; | 390 | bufaddr = skb_frag_address(this_frag); |
391 | 391 | ||
392 | index = fec_enet_get_bd_index(bdp, &txq->bd); | 392 | index = fec_enet_get_bd_index(bdp, &txq->bd); |
393 | if (((unsigned long) bufaddr) & fep->tx_align || | 393 | if (((unsigned long) bufaddr) & fep->tx_align || |
diff --git a/drivers/net/ethernet/hisilicon/hix5hd2_gmac.c b/drivers/net/ethernet/hisilicon/hix5hd2_gmac.c index 349970557c52..95a6b0926170 100644 --- a/drivers/net/ethernet/hisilicon/hix5hd2_gmac.c +++ b/drivers/net/ethernet/hisilicon/hix5hd2_gmac.c | |||
@@ -719,7 +719,7 @@ static int hix5hd2_fill_sg_desc(struct hix5hd2_priv *priv, | |||
719 | 719 | ||
720 | for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { | 720 | for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { |
721 | skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; | 721 | skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; |
722 | int len = frag->size; | 722 | int len = skb_frag_size(frag); |
723 | 723 | ||
724 | addr = skb_frag_dma_map(priv->dev, frag, 0, len, DMA_TO_DEVICE); | 724 | addr = skb_frag_dma_map(priv->dev, frag, 0, len, DMA_TO_DEVICE); |
725 | ret = dma_mapping_error(priv->dev, addr); | 725 | ret = dma_mapping_error(priv->dev, addr); |
diff --git a/drivers/net/ethernet/hisilicon/hns/hns_enet.c b/drivers/net/ethernet/hisilicon/hns/hns_enet.c index 2235dd55fab2..1545536ef769 100644 --- a/drivers/net/ethernet/hisilicon/hns/hns_enet.c +++ b/drivers/net/ethernet/hisilicon/hns/hns_enet.c | |||
@@ -245,7 +245,7 @@ static int hns_nic_maybe_stop_tso( | |||
245 | int frag_num; | 245 | int frag_num; |
246 | struct sk_buff *skb = *out_skb; | 246 | struct sk_buff *skb = *out_skb; |
247 | struct sk_buff *new_skb = NULL; | 247 | struct sk_buff *new_skb = NULL; |
248 | struct skb_frag_struct *frag; | 248 | skb_frag_t *frag; |
249 | 249 | ||
250 | size = skb_headlen(skb); | 250 | size = skb_headlen(skb); |
251 | buf_num = (size + BD_MAX_SEND_SIZE - 1) / BD_MAX_SEND_SIZE; | 251 | buf_num = (size + BD_MAX_SEND_SIZE - 1) / BD_MAX_SEND_SIZE; |
@@ -309,7 +309,7 @@ netdev_tx_t hns_nic_net_xmit_hw(struct net_device *ndev, | |||
309 | struct hnae_ring *ring = ring_data->ring; | 309 | struct hnae_ring *ring = ring_data->ring; |
310 | struct device *dev = ring_to_dev(ring); | 310 | struct device *dev = ring_to_dev(ring); |
311 | struct netdev_queue *dev_queue; | 311 | struct netdev_queue *dev_queue; |
312 | struct skb_frag_struct *frag; | 312 | skb_frag_t *frag; |
313 | int buf_num; | 313 | int buf_num; |
314 | int seg_num; | 314 | int seg_num; |
315 | dma_addr_t dma; | 315 | dma_addr_t dma; |
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c index 310afa708831..69f7ef810654 100644 --- a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c +++ b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c | |||
@@ -1033,7 +1033,7 @@ static int hns3_fill_desc(struct hns3_enet_ring *ring, void *priv, | |||
1033 | struct hns3_desc_cb *desc_cb = &ring->desc_cb[ring->next_to_use]; | 1033 | struct hns3_desc_cb *desc_cb = &ring->desc_cb[ring->next_to_use]; |
1034 | struct hns3_desc *desc = &ring->desc[ring->next_to_use]; | 1034 | struct hns3_desc *desc = &ring->desc[ring->next_to_use]; |
1035 | struct device *dev = ring_to_dev(ring); | 1035 | struct device *dev = ring_to_dev(ring); |
1036 | struct skb_frag_struct *frag; | 1036 | skb_frag_t *frag; |
1037 | unsigned int frag_buf_num; | 1037 | unsigned int frag_buf_num; |
1038 | int k, sizeoflast; | 1038 | int k, sizeoflast; |
1039 | dma_addr_t dma; | 1039 | dma_addr_t dma; |
@@ -1086,7 +1086,7 @@ static int hns3_fill_desc(struct hns3_enet_ring *ring, void *priv, | |||
1086 | 1086 | ||
1087 | dma = dma_map_single(dev, skb->data, size, DMA_TO_DEVICE); | 1087 | dma = dma_map_single(dev, skb->data, size, DMA_TO_DEVICE); |
1088 | } else { | 1088 | } else { |
1089 | frag = (struct skb_frag_struct *)priv; | 1089 | frag = (skb_frag_t *)priv; |
1090 | dma = skb_frag_dma_map(dev, frag, 0, size, DMA_TO_DEVICE); | 1090 | dma = skb_frag_dma_map(dev, frag, 0, size, DMA_TO_DEVICE); |
1091 | } | 1091 | } |
1092 | 1092 | ||
@@ -1159,7 +1159,7 @@ static int hns3_nic_bd_num(struct sk_buff *skb) | |||
1159 | bd_num = hns3_tx_bd_count(size); | 1159 | bd_num = hns3_tx_bd_count(size); |
1160 | 1160 | ||
1161 | for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { | 1161 | for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { |
1162 | struct skb_frag_struct *frag = &skb_shinfo(skb)->frags[i]; | 1162 | skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; |
1163 | int frag_bd_num; | 1163 | int frag_bd_num; |
1164 | 1164 | ||
1165 | size = skb_frag_size(frag); | 1165 | size = skb_frag_size(frag); |
@@ -1290,7 +1290,7 @@ netdev_tx_t hns3_nic_net_xmit(struct sk_buff *skb, struct net_device *netdev) | |||
1290 | &tx_ring_data(priv, skb->queue_mapping); | 1290 | &tx_ring_data(priv, skb->queue_mapping); |
1291 | struct hns3_enet_ring *ring = ring_data->ring; | 1291 | struct hns3_enet_ring *ring = ring_data->ring; |
1292 | struct netdev_queue *dev_queue; | 1292 | struct netdev_queue *dev_queue; |
1293 | struct skb_frag_struct *frag; | 1293 | skb_frag_t *frag; |
1294 | int next_to_use_head; | 1294 | int next_to_use_head; |
1295 | int buf_num; | 1295 | int buf_num; |
1296 | int seg_num; | 1296 | int seg_num; |
diff --git a/drivers/net/ethernet/huawei/hinic/hinic_tx.c b/drivers/net/ethernet/huawei/hinic/hinic_tx.c index 9c78251f9c39..0e13d1c7e474 100644 --- a/drivers/net/ethernet/huawei/hinic/hinic_tx.c +++ b/drivers/net/ethernet/huawei/hinic/hinic_tx.c | |||
@@ -136,7 +136,7 @@ static int tx_map_skb(struct hinic_dev *nic_dev, struct sk_buff *skb, | |||
136 | struct hinic_hwdev *hwdev = nic_dev->hwdev; | 136 | struct hinic_hwdev *hwdev = nic_dev->hwdev; |
137 | struct hinic_hwif *hwif = hwdev->hwif; | 137 | struct hinic_hwif *hwif = hwdev->hwif; |
138 | struct pci_dev *pdev = hwif->pdev; | 138 | struct pci_dev *pdev = hwif->pdev; |
139 | struct skb_frag_struct *frag; | 139 | skb_frag_t *frag; |
140 | dma_addr_t dma_addr; | 140 | dma_addr_t dma_addr; |
141 | int i, j; | 141 | int i, j; |
142 | 142 | ||
diff --git a/drivers/net/ethernet/ibm/emac/core.c b/drivers/net/ethernet/ibm/emac/core.c index 395dde444483..9e43c9ace9c2 100644 --- a/drivers/net/ethernet/ibm/emac/core.c +++ b/drivers/net/ethernet/ibm/emac/core.c | |||
@@ -1549,7 +1549,7 @@ emac_start_xmit_sg(struct sk_buff *skb, struct net_device *ndev) | |||
1549 | ctrl); | 1549 | ctrl); |
1550 | /* skb fragments */ | 1550 | /* skb fragments */ |
1551 | for (i = 0; i < nr_frags; ++i) { | 1551 | for (i = 0; i < nr_frags; ++i) { |
1552 | struct skb_frag_struct *frag = &skb_shinfo(skb)->frags[i]; | 1552 | skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; |
1553 | len = skb_frag_size(frag); | 1553 | len = skb_frag_size(frag); |
1554 | 1554 | ||
1555 | if (unlikely(dev->tx_cnt + mal_tx_chunks(len) >= NUM_TX_BUFF)) | 1555 | if (unlikely(dev->tx_cnt + mal_tx_chunks(len) >= NUM_TX_BUFF)) |
diff --git a/drivers/net/ethernet/intel/e1000/e1000_main.c b/drivers/net/ethernet/intel/e1000/e1000_main.c index f703fa58458e..6b6ba1c38235 100644 --- a/drivers/net/ethernet/intel/e1000/e1000_main.c +++ b/drivers/net/ethernet/intel/e1000/e1000_main.c | |||
@@ -2889,9 +2889,8 @@ static int e1000_tx_map(struct e1000_adapter *adapter, | |||
2889 | } | 2889 | } |
2890 | 2890 | ||
2891 | for (f = 0; f < nr_frags; f++) { | 2891 | for (f = 0; f < nr_frags; f++) { |
2892 | const struct skb_frag_struct *frag; | 2892 | const skb_frag_t *frag = &skb_shinfo(skb)->frags[f]; |
2893 | 2893 | ||
2894 | frag = &skb_shinfo(skb)->frags[f]; | ||
2895 | len = skb_frag_size(frag); | 2894 | len = skb_frag_size(frag); |
2896 | offset = 0; | 2895 | offset = 0; |
2897 | 2896 | ||
diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c index e4baa13b3cda..a0c001d6d9d2 100644 --- a/drivers/net/ethernet/intel/e1000e/netdev.c +++ b/drivers/net/ethernet/intel/e1000e/netdev.c | |||
@@ -5579,9 +5579,8 @@ static int e1000_tx_map(struct e1000_ring *tx_ring, struct sk_buff *skb, | |||
5579 | } | 5579 | } |
5580 | 5580 | ||
5581 | for (f = 0; f < nr_frags; f++) { | 5581 | for (f = 0; f < nr_frags; f++) { |
5582 | const struct skb_frag_struct *frag; | 5582 | const skb_frag_t *frag = &skb_shinfo(skb)->frags[f]; |
5583 | 5583 | ||
5584 | frag = &skb_shinfo(skb)->frags[f]; | ||
5585 | len = skb_frag_size(frag); | 5584 | len = skb_frag_size(frag); |
5586 | offset = 0; | 5585 | offset = 0; |
5587 | 5586 | ||
diff --git a/drivers/net/ethernet/intel/fm10k/fm10k_main.c b/drivers/net/ethernet/intel/fm10k/fm10k_main.c index 90270b4a1682..9ffff7886085 100644 --- a/drivers/net/ethernet/intel/fm10k/fm10k_main.c +++ b/drivers/net/ethernet/intel/fm10k/fm10k_main.c | |||
@@ -946,7 +946,7 @@ static void fm10k_tx_map(struct fm10k_ring *tx_ring, | |||
946 | struct sk_buff *skb = first->skb; | 946 | struct sk_buff *skb = first->skb; |
947 | struct fm10k_tx_buffer *tx_buffer; | 947 | struct fm10k_tx_buffer *tx_buffer; |
948 | struct fm10k_tx_desc *tx_desc; | 948 | struct fm10k_tx_desc *tx_desc; |
949 | struct skb_frag_struct *frag; | 949 | skb_frag_t *frag; |
950 | unsigned char *data; | 950 | unsigned char *data; |
951 | dma_addr_t dma; | 951 | dma_addr_t dma; |
952 | unsigned int data_len, size; | 952 | unsigned int data_len, size; |
@@ -1074,7 +1074,8 @@ netdev_tx_t fm10k_xmit_frame_ring(struct sk_buff *skb, | |||
1074 | * otherwise try next time | 1074 | * otherwise try next time |
1075 | */ | 1075 | */ |
1076 | for (f = 0; f < skb_shinfo(skb)->nr_frags; f++) | 1076 | for (f = 0; f < skb_shinfo(skb)->nr_frags; f++) |
1077 | count += TXD_USE_COUNT(skb_shinfo(skb)->frags[f].size); | 1077 | count += TXD_USE_COUNT(skb_frag_size( |
1078 | &skb_shinfo(skb)->frags[f])); | ||
1078 | 1079 | ||
1079 | if (fm10k_maybe_stop_tx(tx_ring, count + 3)) { | 1080 | if (fm10k_maybe_stop_tx(tx_ring, count + 3)) { |
1080 | tx_ring->tx_stats.tx_busy++; | 1081 | tx_ring->tx_stats.tx_busy++; |
diff --git a/drivers/net/ethernet/intel/i40e/i40e_txrx.c b/drivers/net/ethernet/intel/i40e/i40e_txrx.c index 2a2fe3ec7926..f162252f01b5 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_txrx.c +++ b/drivers/net/ethernet/intel/i40e/i40e_txrx.c | |||
@@ -3262,7 +3262,7 @@ int __i40e_maybe_stop_tx(struct i40e_ring *tx_ring, int size) | |||
3262 | **/ | 3262 | **/ |
3263 | bool __i40e_chk_linearize(struct sk_buff *skb) | 3263 | bool __i40e_chk_linearize(struct sk_buff *skb) |
3264 | { | 3264 | { |
3265 | const struct skb_frag_struct *frag, *stale; | 3265 | const skb_frag_t *frag, *stale; |
3266 | int nr_frags, sum; | 3266 | int nr_frags, sum; |
3267 | 3267 | ||
3268 | /* no need to check if number of frags is less than 7 */ | 3268 | /* no need to check if number of frags is less than 7 */ |
@@ -3349,7 +3349,7 @@ static inline int i40e_tx_map(struct i40e_ring *tx_ring, struct sk_buff *skb, | |||
3349 | { | 3349 | { |
3350 | unsigned int data_len = skb->data_len; | 3350 | unsigned int data_len = skb->data_len; |
3351 | unsigned int size = skb_headlen(skb); | 3351 | unsigned int size = skb_headlen(skb); |
3352 | struct skb_frag_struct *frag; | 3352 | skb_frag_t *frag; |
3353 | struct i40e_tx_buffer *tx_bi; | 3353 | struct i40e_tx_buffer *tx_bi; |
3354 | struct i40e_tx_desc *tx_desc; | 3354 | struct i40e_tx_desc *tx_desc; |
3355 | u16 i = tx_ring->next_to_use; | 3355 | u16 i = tx_ring->next_to_use; |
diff --git a/drivers/net/ethernet/intel/i40e/i40e_txrx.h b/drivers/net/ethernet/intel/i40e/i40e_txrx.h index 100e92d2982f..36d37f31a287 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_txrx.h +++ b/drivers/net/ethernet/intel/i40e/i40e_txrx.h | |||
@@ -521,7 +521,7 @@ static inline u32 i40e_get_head(struct i40e_ring *tx_ring) | |||
521 | **/ | 521 | **/ |
522 | static inline int i40e_xmit_descriptor_count(struct sk_buff *skb) | 522 | static inline int i40e_xmit_descriptor_count(struct sk_buff *skb) |
523 | { | 523 | { |
524 | const struct skb_frag_struct *frag = &skb_shinfo(skb)->frags[0]; | 524 | const skb_frag_t *frag = &skb_shinfo(skb)->frags[0]; |
525 | unsigned int nr_frags = skb_shinfo(skb)->nr_frags; | 525 | unsigned int nr_frags = skb_shinfo(skb)->nr_frags; |
526 | int count = 0, size = skb_headlen(skb); | 526 | int count = 0, size = skb_headlen(skb); |
527 | 527 | ||
diff --git a/drivers/net/ethernet/intel/iavf/iavf_txrx.c b/drivers/net/ethernet/intel/iavf/iavf_txrx.c index 0cca1b589b56..fae7cd1c618a 100644 --- a/drivers/net/ethernet/intel/iavf/iavf_txrx.c +++ b/drivers/net/ethernet/intel/iavf/iavf_txrx.c | |||
@@ -2161,7 +2161,7 @@ static void iavf_create_tx_ctx(struct iavf_ring *tx_ring, | |||
2161 | **/ | 2161 | **/ |
2162 | bool __iavf_chk_linearize(struct sk_buff *skb) | 2162 | bool __iavf_chk_linearize(struct sk_buff *skb) |
2163 | { | 2163 | { |
2164 | const struct skb_frag_struct *frag, *stale; | 2164 | const skb_frag_t *frag, *stale; |
2165 | int nr_frags, sum; | 2165 | int nr_frags, sum; |
2166 | 2166 | ||
2167 | /* no need to check if number of frags is less than 7 */ | 2167 | /* no need to check if number of frags is less than 7 */ |
@@ -2269,7 +2269,7 @@ static inline void iavf_tx_map(struct iavf_ring *tx_ring, struct sk_buff *skb, | |||
2269 | { | 2269 | { |
2270 | unsigned int data_len = skb->data_len; | 2270 | unsigned int data_len = skb->data_len; |
2271 | unsigned int size = skb_headlen(skb); | 2271 | unsigned int size = skb_headlen(skb); |
2272 | struct skb_frag_struct *frag; | 2272 | skb_frag_t *frag; |
2273 | struct iavf_tx_buffer *tx_bi; | 2273 | struct iavf_tx_buffer *tx_bi; |
2274 | struct iavf_tx_desc *tx_desc; | 2274 | struct iavf_tx_desc *tx_desc; |
2275 | u16 i = tx_ring->next_to_use; | 2275 | u16 i = tx_ring->next_to_use; |
diff --git a/drivers/net/ethernet/intel/iavf/iavf_txrx.h b/drivers/net/ethernet/intel/iavf/iavf_txrx.h index 71e7d090f8db..dd3348f9da9d 100644 --- a/drivers/net/ethernet/intel/iavf/iavf_txrx.h +++ b/drivers/net/ethernet/intel/iavf/iavf_txrx.h | |||
@@ -462,7 +462,7 @@ bool __iavf_chk_linearize(struct sk_buff *skb); | |||
462 | **/ | 462 | **/ |
463 | static inline int iavf_xmit_descriptor_count(struct sk_buff *skb) | 463 | static inline int iavf_xmit_descriptor_count(struct sk_buff *skb) |
464 | { | 464 | { |
465 | const struct skb_frag_struct *frag = &skb_shinfo(skb)->frags[0]; | 465 | const skb_frag_t *frag = &skb_shinfo(skb)->frags[0]; |
466 | unsigned int nr_frags = skb_shinfo(skb)->nr_frags; | 466 | unsigned int nr_frags = skb_shinfo(skb)->nr_frags; |
467 | int count = 0, size = skb_headlen(skb); | 467 | int count = 0, size = skb_headlen(skb); |
468 | 468 | ||
diff --git a/drivers/net/ethernet/intel/ice/ice_txrx.c b/drivers/net/ethernet/intel/ice/ice_txrx.c index 3c83230434b6..dd7392f293bf 100644 --- a/drivers/net/ethernet/intel/ice/ice_txrx.c +++ b/drivers/net/ethernet/intel/ice/ice_txrx.c | |||
@@ -1521,7 +1521,7 @@ ice_tx_map(struct ice_ring *tx_ring, struct ice_tx_buf *first, | |||
1521 | { | 1521 | { |
1522 | u64 td_offset, td_tag, td_cmd; | 1522 | u64 td_offset, td_tag, td_cmd; |
1523 | u16 i = tx_ring->next_to_use; | 1523 | u16 i = tx_ring->next_to_use; |
1524 | struct skb_frag_struct *frag; | 1524 | skb_frag_t *frag; |
1525 | unsigned int data_len, size; | 1525 | unsigned int data_len, size; |
1526 | struct ice_tx_desc *tx_desc; | 1526 | struct ice_tx_desc *tx_desc; |
1527 | struct ice_tx_buf *tx_buf; | 1527 | struct ice_tx_buf *tx_buf; |
@@ -1923,7 +1923,7 @@ static unsigned int ice_txd_use_count(unsigned int size) | |||
1923 | */ | 1923 | */ |
1924 | static unsigned int ice_xmit_desc_count(struct sk_buff *skb) | 1924 | static unsigned int ice_xmit_desc_count(struct sk_buff *skb) |
1925 | { | 1925 | { |
1926 | const struct skb_frag_struct *frag = &skb_shinfo(skb)->frags[0]; | 1926 | const skb_frag_t *frag = &skb_shinfo(skb)->frags[0]; |
1927 | unsigned int nr_frags = skb_shinfo(skb)->nr_frags; | 1927 | unsigned int nr_frags = skb_shinfo(skb)->nr_frags; |
1928 | unsigned int count = 0, size = skb_headlen(skb); | 1928 | unsigned int count = 0, size = skb_headlen(skb); |
1929 | 1929 | ||
@@ -1954,7 +1954,7 @@ static unsigned int ice_xmit_desc_count(struct sk_buff *skb) | |||
1954 | */ | 1954 | */ |
1955 | static bool __ice_chk_linearize(struct sk_buff *skb) | 1955 | static bool __ice_chk_linearize(struct sk_buff *skb) |
1956 | { | 1956 | { |
1957 | const struct skb_frag_struct *frag, *stale; | 1957 | const skb_frag_t *frag, *stale; |
1958 | int nr_frags, sum; | 1958 | int nr_frags, sum; |
1959 | 1959 | ||
1960 | /* no need to check if number of frags is less than 7 */ | 1960 | /* no need to check if number of frags is less than 7 */ |
diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c index b4df3e319467..749645d7f9b7 100644 --- a/drivers/net/ethernet/intel/igb/igb_main.c +++ b/drivers/net/ethernet/intel/igb/igb_main.c | |||
@@ -5918,7 +5918,7 @@ static int igb_tx_map(struct igb_ring *tx_ring, | |||
5918 | struct sk_buff *skb = first->skb; | 5918 | struct sk_buff *skb = first->skb; |
5919 | struct igb_tx_buffer *tx_buffer; | 5919 | struct igb_tx_buffer *tx_buffer; |
5920 | union e1000_adv_tx_desc *tx_desc; | 5920 | union e1000_adv_tx_desc *tx_desc; |
5921 | struct skb_frag_struct *frag; | 5921 | skb_frag_t *frag; |
5922 | dma_addr_t dma; | 5922 | dma_addr_t dma; |
5923 | unsigned int data_len, size; | 5923 | unsigned int data_len, size; |
5924 | u32 tx_flags = first->tx_flags; | 5924 | u32 tx_flags = first->tx_flags; |
@@ -6074,7 +6074,8 @@ netdev_tx_t igb_xmit_frame_ring(struct sk_buff *skb, | |||
6074 | * otherwise try next time | 6074 | * otherwise try next time |
6075 | */ | 6075 | */ |
6076 | for (f = 0; f < skb_shinfo(skb)->nr_frags; f++) | 6076 | for (f = 0; f < skb_shinfo(skb)->nr_frags; f++) |
6077 | count += TXD_USE_COUNT(skb_shinfo(skb)->frags[f].size); | 6077 | count += TXD_USE_COUNT(skb_frag_size( |
6078 | &skb_shinfo(skb)->frags[f])); | ||
6078 | 6079 | ||
6079 | if (igb_maybe_stop_tx(tx_ring, count + 3)) { | 6080 | if (igb_maybe_stop_tx(tx_ring, count + 3)) { |
6080 | /* this is a hard error */ | 6081 | /* this is a hard error */ |
diff --git a/drivers/net/ethernet/intel/igbvf/netdev.c b/drivers/net/ethernet/intel/igbvf/netdev.c index 34cd30d7162f..0f2b68f4bb0f 100644 --- a/drivers/net/ethernet/intel/igbvf/netdev.c +++ b/drivers/net/ethernet/intel/igbvf/netdev.c | |||
@@ -2174,7 +2174,7 @@ static inline int igbvf_tx_map_adv(struct igbvf_adapter *adapter, | |||
2174 | goto dma_error; | 2174 | goto dma_error; |
2175 | 2175 | ||
2176 | for (f = 0; f < skb_shinfo(skb)->nr_frags; f++) { | 2176 | for (f = 0; f < skb_shinfo(skb)->nr_frags; f++) { |
2177 | const struct skb_frag_struct *frag; | 2177 | const skb_frag_t *frag; |
2178 | 2178 | ||
2179 | count++; | 2179 | count++; |
2180 | i++; | 2180 | i++; |
diff --git a/drivers/net/ethernet/intel/igc/igc_main.c b/drivers/net/ethernet/intel/igc/igc_main.c index aa9323e55406..9ffe71424ece 100644 --- a/drivers/net/ethernet/intel/igc/igc_main.c +++ b/drivers/net/ethernet/intel/igc/igc_main.c | |||
@@ -861,7 +861,7 @@ static int igc_tx_map(struct igc_ring *tx_ring, | |||
861 | struct igc_tx_buffer *tx_buffer; | 861 | struct igc_tx_buffer *tx_buffer; |
862 | union igc_adv_tx_desc *tx_desc; | 862 | union igc_adv_tx_desc *tx_desc; |
863 | u32 tx_flags = first->tx_flags; | 863 | u32 tx_flags = first->tx_flags; |
864 | struct skb_frag_struct *frag; | 864 | skb_frag_t *frag; |
865 | u16 i = tx_ring->next_to_use; | 865 | u16 i = tx_ring->next_to_use; |
866 | unsigned int data_len, size; | 866 | unsigned int data_len, size; |
867 | dma_addr_t dma; | 867 | dma_addr_t dma; |
@@ -1015,7 +1015,8 @@ static netdev_tx_t igc_xmit_frame_ring(struct sk_buff *skb, | |||
1015 | * otherwise try next time | 1015 | * otherwise try next time |
1016 | */ | 1016 | */ |
1017 | for (f = 0; f < skb_shinfo(skb)->nr_frags; f++) | 1017 | for (f = 0; f < skb_shinfo(skb)->nr_frags; f++) |
1018 | count += TXD_USE_COUNT(skb_shinfo(skb)->frags[f].size); | 1018 | count += TXD_USE_COUNT(skb_frag_size( |
1019 | &skb_shinfo(skb)->frags[f])); | ||
1019 | 1020 | ||
1020 | if (igc_maybe_stop_tx(tx_ring, count + 3)) { | 1021 | if (igc_maybe_stop_tx(tx_ring, count + 3)) { |
1021 | /* this is a hard error */ | 1022 | /* this is a hard error */ |
diff --git a/drivers/net/ethernet/intel/ixgb/ixgb_main.c b/drivers/net/ethernet/intel/ixgb/ixgb_main.c index e5ac2d3fd816..0940a0da16f2 100644 --- a/drivers/net/ethernet/intel/ixgb/ixgb_main.c +++ b/drivers/net/ethernet/intel/ixgb/ixgb_main.c | |||
@@ -1331,9 +1331,7 @@ ixgb_tx_map(struct ixgb_adapter *adapter, struct sk_buff *skb, | |||
1331 | } | 1331 | } |
1332 | 1332 | ||
1333 | for (f = 0; f < nr_frags; f++) { | 1333 | for (f = 0; f < nr_frags; f++) { |
1334 | const struct skb_frag_struct *frag; | 1334 | const skb_frag_t *frag = &skb_shinfo(skb)->frags[f]; |
1335 | |||
1336 | frag = &skb_shinfo(skb)->frags[f]; | ||
1337 | len = skb_frag_size(frag); | 1335 | len = skb_frag_size(frag); |
1338 | offset = 0; | 1336 | offset = 0; |
1339 | 1337 | ||
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c index cbaf712d6529..e12d23d1fa64 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | |||
@@ -1785,7 +1785,7 @@ static bool ixgbe_is_non_eop(struct ixgbe_ring *rx_ring, | |||
1785 | static void ixgbe_pull_tail(struct ixgbe_ring *rx_ring, | 1785 | static void ixgbe_pull_tail(struct ixgbe_ring *rx_ring, |
1786 | struct sk_buff *skb) | 1786 | struct sk_buff *skb) |
1787 | { | 1787 | { |
1788 | struct skb_frag_struct *frag = &skb_shinfo(skb)->frags[0]; | 1788 | skb_frag_t *frag = &skb_shinfo(skb)->frags[0]; |
1789 | unsigned char *va; | 1789 | unsigned char *va; |
1790 | unsigned int pull_len; | 1790 | unsigned int pull_len; |
1791 | 1791 | ||
@@ -1840,7 +1840,7 @@ static void ixgbe_dma_sync_frag(struct ixgbe_ring *rx_ring, | |||
1840 | skb_headlen(skb), | 1840 | skb_headlen(skb), |
1841 | DMA_FROM_DEVICE); | 1841 | DMA_FROM_DEVICE); |
1842 | } else { | 1842 | } else { |
1843 | struct skb_frag_struct *frag = &skb_shinfo(skb)->frags[0]; | 1843 | skb_frag_t *frag = &skb_shinfo(skb)->frags[0]; |
1844 | 1844 | ||
1845 | dma_sync_single_range_for_cpu(rx_ring->dev, | 1845 | dma_sync_single_range_for_cpu(rx_ring->dev, |
1846 | IXGBE_CB(skb)->dma, | 1846 | IXGBE_CB(skb)->dma, |
@@ -8186,7 +8186,7 @@ static int ixgbe_tx_map(struct ixgbe_ring *tx_ring, | |||
8186 | struct sk_buff *skb = first->skb; | 8186 | struct sk_buff *skb = first->skb; |
8187 | struct ixgbe_tx_buffer *tx_buffer; | 8187 | struct ixgbe_tx_buffer *tx_buffer; |
8188 | union ixgbe_adv_tx_desc *tx_desc; | 8188 | union ixgbe_adv_tx_desc *tx_desc; |
8189 | struct skb_frag_struct *frag; | 8189 | skb_frag_t *frag; |
8190 | dma_addr_t dma; | 8190 | dma_addr_t dma; |
8191 | unsigned int data_len, size; | 8191 | unsigned int data_len, size; |
8192 | u32 tx_flags = first->tx_flags; | 8192 | u32 tx_flags = first->tx_flags; |
@@ -8605,7 +8605,8 @@ netdev_tx_t ixgbe_xmit_frame_ring(struct sk_buff *skb, | |||
8605 | * otherwise try next time | 8605 | * otherwise try next time |
8606 | */ | 8606 | */ |
8607 | for (f = 0; f < skb_shinfo(skb)->nr_frags; f++) | 8607 | for (f = 0; f < skb_shinfo(skb)->nr_frags; f++) |
8608 | count += TXD_USE_COUNT(skb_shinfo(skb)->frags[f].size); | 8608 | count += TXD_USE_COUNT(skb_frag_size( |
8609 | &skb_shinfo(skb)->frags[f])); | ||
8609 | 8610 | ||
8610 | if (ixgbe_maybe_stop_tx(tx_ring, count + 3)) { | 8611 | if (ixgbe_maybe_stop_tx(tx_ring, count + 3)) { |
8611 | tx_ring->tx_stats.tx_busy++; | 8612 | tx_ring->tx_stats.tx_busy++; |
diff --git a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c index d2b41f9f87f8..bdfccaf38edd 100644 --- a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c +++ b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | |||
@@ -3949,7 +3949,7 @@ static void ixgbevf_tx_map(struct ixgbevf_ring *tx_ring, | |||
3949 | struct sk_buff *skb = first->skb; | 3949 | struct sk_buff *skb = first->skb; |
3950 | struct ixgbevf_tx_buffer *tx_buffer; | 3950 | struct ixgbevf_tx_buffer *tx_buffer; |
3951 | union ixgbe_adv_tx_desc *tx_desc; | 3951 | union ixgbe_adv_tx_desc *tx_desc; |
3952 | struct skb_frag_struct *frag; | 3952 | skb_frag_t *frag; |
3953 | dma_addr_t dma; | 3953 | dma_addr_t dma; |
3954 | unsigned int data_len, size; | 3954 | unsigned int data_len, size; |
3955 | u32 tx_flags = first->tx_flags; | 3955 | u32 tx_flags = first->tx_flags; |
diff --git a/drivers/net/ethernet/jme.c b/drivers/net/ethernet/jme.c index 0b668357db4d..ff6393fd64ac 100644 --- a/drivers/net/ethernet/jme.c +++ b/drivers/net/ethernet/jme.c | |||
@@ -2030,12 +2030,12 @@ jme_map_tx_skb(struct jme_adapter *jme, struct sk_buff *skb, int idx) | |||
2030 | bool hidma = jme->dev->features & NETIF_F_HIGHDMA; | 2030 | bool hidma = jme->dev->features & NETIF_F_HIGHDMA; |
2031 | int i, nr_frags = skb_shinfo(skb)->nr_frags; | 2031 | int i, nr_frags = skb_shinfo(skb)->nr_frags; |
2032 | int mask = jme->tx_ring_mask; | 2032 | int mask = jme->tx_ring_mask; |
2033 | const struct skb_frag_struct *frag; | ||
2034 | u32 len; | 2033 | u32 len; |
2035 | int ret = 0; | 2034 | int ret = 0; |
2036 | 2035 | ||
2037 | for (i = 0 ; i < nr_frags ; ++i) { | 2036 | for (i = 0 ; i < nr_frags ; ++i) { |
2038 | frag = &skb_shinfo(skb)->frags[i]; | 2037 | const skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; |
2038 | |||
2039 | ctxdesc = txdesc + ((idx + i + 2) & (mask)); | 2039 | ctxdesc = txdesc + ((idx + i + 2) & (mask)); |
2040 | ctxbi = txbi + ((idx + i + 2) & (mask)); | 2040 | ctxbi = txbi + ((idx + i + 2) & (mask)); |
2041 | 2041 | ||
@@ -2046,7 +2046,6 @@ jme_map_tx_skb(struct jme_adapter *jme, struct sk_buff *skb, int idx) | |||
2046 | jme_drop_tx_map(jme, idx, i); | 2046 | jme_drop_tx_map(jme, idx, i); |
2047 | goto out; | 2047 | goto out; |
2048 | } | 2048 | } |
2049 | |||
2050 | } | 2049 | } |
2051 | 2050 | ||
2052 | len = skb_is_nonlinear(skb) ? skb_headlen(skb) : skb->len; | 2051 | len = skb_is_nonlinear(skb) ? skb_headlen(skb) : skb->len; |
diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c index 895bfed26a8a..15cc678f5e5b 100644 --- a/drivers/net/ethernet/marvell/mvneta.c +++ b/drivers/net/ethernet/marvell/mvneta.c | |||
@@ -2350,10 +2350,10 @@ static int mvneta_tx_frag_process(struct mvneta_port *pp, struct sk_buff *skb, | |||
2350 | 2350 | ||
2351 | for (i = 0; i < nr_frags; i++) { | 2351 | for (i = 0; i < nr_frags; i++) { |
2352 | skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; | 2352 | skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; |
2353 | void *addr = page_address(frag->page.p) + frag->page_offset; | 2353 | void *addr = skb_frag_address(frag); |
2354 | 2354 | ||
2355 | tx_desc = mvneta_txq_next_desc_get(txq); | 2355 | tx_desc = mvneta_txq_next_desc_get(txq); |
2356 | tx_desc->data_size = frag->size; | 2356 | tx_desc->data_size = skb_frag_size(frag); |
2357 | 2357 | ||
2358 | tx_desc->buf_phys_addr = | 2358 | tx_desc->buf_phys_addr = |
2359 | dma_map_single(pp->dev->dev.parent, addr, | 2359 | dma_map_single(pp->dev->dev.parent, addr, |
diff --git a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c index c51f1d5b550b..937e4b928b94 100644 --- a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c +++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | |||
@@ -2911,14 +2911,15 @@ static int mvpp2_tx_frag_process(struct mvpp2_port *port, struct sk_buff *skb, | |||
2911 | 2911 | ||
2912 | for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { | 2912 | for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { |
2913 | skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; | 2913 | skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; |
2914 | void *addr = page_address(frag->page.p) + frag->page_offset; | 2914 | void *addr = skb_frag_address(frag); |
2915 | 2915 | ||
2916 | tx_desc = mvpp2_txq_next_desc_get(aggr_txq); | 2916 | tx_desc = mvpp2_txq_next_desc_get(aggr_txq); |
2917 | mvpp2_txdesc_txq_set(port, tx_desc, txq->id); | 2917 | mvpp2_txdesc_txq_set(port, tx_desc, txq->id); |
2918 | mvpp2_txdesc_size_set(port, tx_desc, frag->size); | 2918 | mvpp2_txdesc_size_set(port, tx_desc, skb_frag_size(frag)); |
2919 | 2919 | ||
2920 | buf_dma_addr = dma_map_single(port->dev->dev.parent, addr, | 2920 | buf_dma_addr = dma_map_single(port->dev->dev.parent, addr, |
2921 | frag->size, DMA_TO_DEVICE); | 2921 | skb_frag_size(frag), |
2922 | DMA_TO_DEVICE); | ||
2922 | if (dma_mapping_error(port->dev->dev.parent, buf_dma_addr)) { | 2923 | if (dma_mapping_error(port->dev->dev.parent, buf_dma_addr)) { |
2923 | mvpp2_txq_desc_put(txq); | 2924 | mvpp2_txq_desc_put(txq); |
2924 | goto cleanup; | 2925 | goto cleanup; |
diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c index c39d7f4ab1d4..00991df44ed6 100644 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c | |||
@@ -696,7 +696,7 @@ static int mtk_tx_map(struct sk_buff *skb, struct net_device *dev, | |||
696 | txd = itxd; | 696 | txd = itxd; |
697 | nr_frags = skb_shinfo(skb)->nr_frags; | 697 | nr_frags = skb_shinfo(skb)->nr_frags; |
698 | for (i = 0; i < nr_frags; i++) { | 698 | for (i = 0; i < nr_frags; i++) { |
699 | struct skb_frag_struct *frag = &skb_shinfo(skb)->frags[i]; | 699 | skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; |
700 | unsigned int offset = 0; | 700 | unsigned int offset = 0; |
701 | int frag_size = skb_frag_size(frag); | 701 | int frag_size = skb_frag_size(frag); |
702 | 702 | ||
@@ -781,7 +781,7 @@ err_dma: | |||
781 | static inline int mtk_cal_txd_req(struct sk_buff *skb) | 781 | static inline int mtk_cal_txd_req(struct sk_buff *skb) |
782 | { | 782 | { |
783 | int i, nfrags; | 783 | int i, nfrags; |
784 | struct skb_frag_struct *frag; | 784 | skb_frag_t *frag; |
785 | 785 | ||
786 | nfrags = 1; | 786 | nfrags = 1; |
787 | if (skb_is_gso(skb)) { | 787 | if (skb_is_gso(skb)) { |
diff --git a/drivers/net/ethernet/mellanox/mlx4/en_tx.c b/drivers/net/ethernet/mellanox/mlx4/en_tx.c index 36a92b19e613..4d5ca302c067 100644 --- a/drivers/net/ethernet/mellanox/mlx4/en_tx.c +++ b/drivers/net/ethernet/mellanox/mlx4/en_tx.c | |||
@@ -772,9 +772,7 @@ static bool mlx4_en_build_dma_wqe(struct mlx4_en_priv *priv, | |||
772 | 772 | ||
773 | /* Map fragments if any */ | 773 | /* Map fragments if any */ |
774 | for (i_frag = shinfo->nr_frags - 1; i_frag >= 0; i_frag--) { | 774 | for (i_frag = shinfo->nr_frags - 1; i_frag >= 0; i_frag--) { |
775 | const struct skb_frag_struct *frag; | 775 | const skb_frag_t *frag = &shinfo->frags[i_frag]; |
776 | |||
777 | frag = &shinfo->frags[i_frag]; | ||
778 | byte_count = skb_frag_size(frag); | 776 | byte_count = skb_frag_size(frag); |
779 | dma = skb_frag_dma_map(ddev, frag, | 777 | dma = skb_frag_dma_map(ddev, frag, |
780 | 0, byte_count, | 778 | 0, byte_count, |
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_tx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_tx.c index 600e92cb629a..acf25cc38fa1 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_tx.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_tx.c | |||
@@ -210,7 +210,7 @@ mlx5e_txwqe_build_dsegs(struct mlx5e_txqsq *sq, struct sk_buff *skb, | |||
210 | } | 210 | } |
211 | 211 | ||
212 | for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { | 212 | for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { |
213 | struct skb_frag_struct *frag = &skb_shinfo(skb)->frags[i]; | 213 | skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; |
214 | int fsz = skb_frag_size(frag); | 214 | int fsz = skb_frag_size(frag); |
215 | 215 | ||
216 | dma_addr = skb_frag_dma_map(sq->pdev, frag, 0, fsz, | 216 | dma_addr = skb_frag_dma_map(sq->pdev, frag, 0, fsz, |
diff --git a/drivers/net/ethernet/microchip/lan743x_main.c b/drivers/net/ethernet/microchip/lan743x_main.c index 13e6bf13ac4d..15a8be6bad27 100644 --- a/drivers/net/ethernet/microchip/lan743x_main.c +++ b/drivers/net/ethernet/microchip/lan743x_main.c | |||
@@ -1434,7 +1434,7 @@ static void lan743x_tx_frame_add_lso(struct lan743x_tx *tx, | |||
1434 | } | 1434 | } |
1435 | 1435 | ||
1436 | static int lan743x_tx_frame_add_fragment(struct lan743x_tx *tx, | 1436 | static int lan743x_tx_frame_add_fragment(struct lan743x_tx *tx, |
1437 | const struct skb_frag_struct *fragment, | 1437 | const skb_frag_t *fragment, |
1438 | unsigned int frame_length) | 1438 | unsigned int frame_length) |
1439 | { | 1439 | { |
1440 | /* called only from within lan743x_tx_xmit_frame | 1440 | /* called only from within lan743x_tx_xmit_frame |
@@ -1607,9 +1607,8 @@ static netdev_tx_t lan743x_tx_xmit_frame(struct lan743x_tx *tx, | |||
1607 | goto finish; | 1607 | goto finish; |
1608 | 1608 | ||
1609 | for (j = 0; j < nr_frags; j++) { | 1609 | for (j = 0; j < nr_frags; j++) { |
1610 | const struct skb_frag_struct *frag; | 1610 | const skb_frag_t *frag = &(skb_shinfo(skb)->frags[j]); |
1611 | 1611 | ||
1612 | frag = &(skb_shinfo(skb)->frags[j]); | ||
1613 | if (lan743x_tx_frame_add_fragment(tx, frag, frame_length)) { | 1612 | if (lan743x_tx_frame_add_fragment(tx, frag, frame_length)) { |
1614 | /* upon error no need to call | 1613 | /* upon error no need to call |
1615 | * lan743x_tx_frame_end | 1614 | * lan743x_tx_frame_end |
diff --git a/drivers/net/ethernet/myricom/myri10ge/myri10ge.c b/drivers/net/ethernet/myricom/myri10ge/myri10ge.c index d8b7fba96d58..9ead6ecb7586 100644 --- a/drivers/net/ethernet/myricom/myri10ge/myri10ge.c +++ b/drivers/net/ethernet/myricom/myri10ge/myri10ge.c | |||
@@ -1286,7 +1286,7 @@ myri10ge_vlan_rx(struct net_device *dev, void *addr, struct sk_buff *skb) | |||
1286 | { | 1286 | { |
1287 | u8 *va; | 1287 | u8 *va; |
1288 | struct vlan_ethhdr *veh; | 1288 | struct vlan_ethhdr *veh; |
1289 | struct skb_frag_struct *frag; | 1289 | skb_frag_t *frag; |
1290 | __wsum vsum; | 1290 | __wsum vsum; |
1291 | 1291 | ||
1292 | va = addr; | 1292 | va = addr; |
@@ -1318,7 +1318,7 @@ myri10ge_rx_done(struct myri10ge_slice_state *ss, int len, __wsum csum) | |||
1318 | { | 1318 | { |
1319 | struct myri10ge_priv *mgp = ss->mgp; | 1319 | struct myri10ge_priv *mgp = ss->mgp; |
1320 | struct sk_buff *skb; | 1320 | struct sk_buff *skb; |
1321 | struct skb_frag_struct *rx_frags; | 1321 | skb_frag_t *rx_frags; |
1322 | struct myri10ge_rx_buf *rx; | 1322 | struct myri10ge_rx_buf *rx; |
1323 | int i, idx, remainder, bytes; | 1323 | int i, idx, remainder, bytes; |
1324 | struct pci_dev *pdev = mgp->pdev; | 1324 | struct pci_dev *pdev = mgp->pdev; |
@@ -1351,7 +1351,7 @@ myri10ge_rx_done(struct myri10ge_slice_state *ss, int len, __wsum csum) | |||
1351 | return 0; | 1351 | return 0; |
1352 | } | 1352 | } |
1353 | rx_frags = skb_shinfo(skb)->frags; | 1353 | rx_frags = skb_shinfo(skb)->frags; |
1354 | /* Fill skb_frag_struct(s) with data from our receive */ | 1354 | /* Fill skb_frag_t(s) with data from our receive */ |
1355 | for (i = 0, remainder = len; remainder > 0; i++) { | 1355 | for (i = 0, remainder = len; remainder > 0; i++) { |
1356 | myri10ge_unmap_rx_page(pdev, &rx->info[idx], bytes); | 1356 | myri10ge_unmap_rx_page(pdev, &rx->info[idx], bytes); |
1357 | skb_fill_page_desc(skb, i, rx->info[idx].page, | 1357 | skb_fill_page_desc(skb, i, rx->info[idx].page, |
@@ -1365,7 +1365,7 @@ myri10ge_rx_done(struct myri10ge_slice_state *ss, int len, __wsum csum) | |||
1365 | 1365 | ||
1366 | /* remove padding */ | 1366 | /* remove padding */ |
1367 | rx_frags[0].page_offset += MXGEFW_PAD; | 1367 | rx_frags[0].page_offset += MXGEFW_PAD; |
1368 | rx_frags[0].size -= MXGEFW_PAD; | 1368 | skb_frag_size_sub(&rx_frags[0], MXGEFW_PAD); |
1369 | len -= MXGEFW_PAD; | 1369 | len -= MXGEFW_PAD; |
1370 | 1370 | ||
1371 | skb->len = len; | 1371 | skb->len = len; |
@@ -2628,7 +2628,7 @@ static netdev_tx_t myri10ge_xmit(struct sk_buff *skb, | |||
2628 | struct myri10ge_slice_state *ss; | 2628 | struct myri10ge_slice_state *ss; |
2629 | struct mcp_kreq_ether_send *req; | 2629 | struct mcp_kreq_ether_send *req; |
2630 | struct myri10ge_tx_buf *tx; | 2630 | struct myri10ge_tx_buf *tx; |
2631 | struct skb_frag_struct *frag; | 2631 | skb_frag_t *frag; |
2632 | struct netdev_queue *netdev_queue; | 2632 | struct netdev_queue *netdev_queue; |
2633 | dma_addr_t bus; | 2633 | dma_addr_t bus; |
2634 | u32 low; | 2634 | u32 low; |
diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_common.c b/drivers/net/ethernet/netronome/nfp/nfp_net_common.c index 9903805717da..6f97b554f7da 100644 --- a/drivers/net/ethernet/netronome/nfp/nfp_net_common.c +++ b/drivers/net/ethernet/netronome/nfp/nfp_net_common.c | |||
@@ -975,7 +975,7 @@ static int nfp_net_prep_tx_meta(struct sk_buff *skb, u64 tls_handle) | |||
975 | static int nfp_net_tx(struct sk_buff *skb, struct net_device *netdev) | 975 | static int nfp_net_tx(struct sk_buff *skb, struct net_device *netdev) |
976 | { | 976 | { |
977 | struct nfp_net *nn = netdev_priv(netdev); | 977 | struct nfp_net *nn = netdev_priv(netdev); |
978 | const struct skb_frag_struct *frag; | 978 | const skb_frag_t *frag; |
979 | int f, nr_frags, wr_idx, md_bytes; | 979 | int f, nr_frags, wr_idx, md_bytes; |
980 | struct nfp_net_tx_ring *tx_ring; | 980 | struct nfp_net_tx_ring *tx_ring; |
981 | struct nfp_net_r_vector *r_vec; | 981 | struct nfp_net_r_vector *r_vec; |
@@ -1155,7 +1155,7 @@ static void nfp_net_tx_complete(struct nfp_net_tx_ring *tx_ring, int budget) | |||
1155 | todo = D_IDX(tx_ring, qcp_rd_p - tx_ring->qcp_rd_p); | 1155 | todo = D_IDX(tx_ring, qcp_rd_p - tx_ring->qcp_rd_p); |
1156 | 1156 | ||
1157 | while (todo--) { | 1157 | while (todo--) { |
1158 | const struct skb_frag_struct *frag; | 1158 | const skb_frag_t *frag; |
1159 | struct nfp_net_tx_buf *tx_buf; | 1159 | struct nfp_net_tx_buf *tx_buf; |
1160 | struct sk_buff *skb; | 1160 | struct sk_buff *skb; |
1161 | int fidx, nr_frags; | 1161 | int fidx, nr_frags; |
@@ -1270,7 +1270,7 @@ static bool nfp_net_xdp_complete(struct nfp_net_tx_ring *tx_ring) | |||
1270 | static void | 1270 | static void |
1271 | nfp_net_tx_ring_reset(struct nfp_net_dp *dp, struct nfp_net_tx_ring *tx_ring) | 1271 | nfp_net_tx_ring_reset(struct nfp_net_dp *dp, struct nfp_net_tx_ring *tx_ring) |
1272 | { | 1272 | { |
1273 | const struct skb_frag_struct *frag; | 1273 | const skb_frag_t *frag; |
1274 | struct netdev_queue *nd_q; | 1274 | struct netdev_queue *nd_q; |
1275 | 1275 | ||
1276 | while (!tx_ring->is_xdp && tx_ring->rd_p != tx_ring->wr_p) { | 1276 | while (!tx_ring->is_xdp && tx_ring->rd_p != tx_ring->wr_p) { |
diff --git a/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c b/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c index 58e2eaf77014..c692a41e4548 100644 --- a/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c +++ b/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c | |||
@@ -1980,7 +1980,7 @@ netxen_map_tx_skb(struct pci_dev *pdev, | |||
1980 | struct sk_buff *skb, struct netxen_cmd_buffer *pbuf) | 1980 | struct sk_buff *skb, struct netxen_cmd_buffer *pbuf) |
1981 | { | 1981 | { |
1982 | struct netxen_skb_frag *nf; | 1982 | struct netxen_skb_frag *nf; |
1983 | struct skb_frag_struct *frag; | 1983 | skb_frag_t *frag; |
1984 | int i, nr_frags; | 1984 | int i, nr_frags; |
1985 | dma_addr_t map; | 1985 | dma_addr_t map; |
1986 | 1986 | ||
@@ -2043,7 +2043,7 @@ netxen_nic_xmit_frame(struct sk_buff *skb, struct net_device *netdev) | |||
2043 | struct pci_dev *pdev; | 2043 | struct pci_dev *pdev; |
2044 | int i, k; | 2044 | int i, k; |
2045 | int delta = 0; | 2045 | int delta = 0; |
2046 | struct skb_frag_struct *frag; | 2046 | skb_frag_t *frag; |
2047 | 2047 | ||
2048 | u32 producer; | 2048 | u32 producer; |
2049 | int frag_count; | 2049 | int frag_count; |
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c index 14f26bf3b388..ac61f614de37 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c | |||
@@ -581,7 +581,7 @@ static int qlcnic_map_tx_skb(struct pci_dev *pdev, struct sk_buff *skb, | |||
581 | struct qlcnic_cmd_buffer *pbuf) | 581 | struct qlcnic_cmd_buffer *pbuf) |
582 | { | 582 | { |
583 | struct qlcnic_skb_frag *nf; | 583 | struct qlcnic_skb_frag *nf; |
584 | struct skb_frag_struct *frag; | 584 | skb_frag_t *frag; |
585 | int i, nr_frags; | 585 | int i, nr_frags; |
586 | dma_addr_t map; | 586 | dma_addr_t map; |
587 | 587 | ||
diff --git a/drivers/net/ethernet/qualcomm/emac/emac-mac.c b/drivers/net/ethernet/qualcomm/emac/emac-mac.c index 707665b62eb7..bebe38d74d66 100644 --- a/drivers/net/ethernet/qualcomm/emac/emac-mac.c +++ b/drivers/net/ethernet/qualcomm/emac/emac-mac.c | |||
@@ -1385,15 +1385,13 @@ static void emac_tx_fill_tpd(struct emac_adapter *adpt, | |||
1385 | } | 1385 | } |
1386 | 1386 | ||
1387 | for (i = 0; i < nr_frags; i++) { | 1387 | for (i = 0; i < nr_frags; i++) { |
1388 | struct skb_frag_struct *frag; | 1388 | skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; |
1389 | |||
1390 | frag = &skb_shinfo(skb)->frags[i]; | ||
1391 | 1389 | ||
1392 | tpbuf = GET_TPD_BUFFER(tx_q, tx_q->tpd.produce_idx); | 1390 | tpbuf = GET_TPD_BUFFER(tx_q, tx_q->tpd.produce_idx); |
1393 | tpbuf->length = frag->size; | 1391 | tpbuf->length = skb_frag_size(frag); |
1394 | tpbuf->dma_addr = dma_map_page(adpt->netdev->dev.parent, | 1392 | tpbuf->dma_addr = skb_frag_dma_map(adpt->netdev->dev.parent, |
1395 | frag->page.p, frag->page_offset, | 1393 | frag, 0, tpbuf->length, |
1396 | tpbuf->length, DMA_TO_DEVICE); | 1394 | DMA_TO_DEVICE); |
1397 | ret = dma_mapping_error(adpt->netdev->dev.parent, | 1395 | ret = dma_mapping_error(adpt->netdev->dev.parent, |
1398 | tpbuf->dma_addr); | 1396 | tpbuf->dma_addr); |
1399 | if (ret) | 1397 | if (ret) |
diff --git a/drivers/net/ethernet/synopsys/dwc-xlgmac-desc.c b/drivers/net/ethernet/synopsys/dwc-xlgmac-desc.c index 031cf9c3435a..8c4195a9a2cc 100644 --- a/drivers/net/ethernet/synopsys/dwc-xlgmac-desc.c +++ b/drivers/net/ethernet/synopsys/dwc-xlgmac-desc.c | |||
@@ -503,7 +503,7 @@ static int xlgmac_map_tx_skb(struct xlgmac_channel *channel, | |||
503 | struct xlgmac_desc_data *desc_data; | 503 | struct xlgmac_desc_data *desc_data; |
504 | unsigned int offset, datalen, len; | 504 | unsigned int offset, datalen, len; |
505 | struct xlgmac_pkt_info *pkt_info; | 505 | struct xlgmac_pkt_info *pkt_info; |
506 | struct skb_frag_struct *frag; | 506 | skb_frag_t *frag; |
507 | unsigned int tso, vlan; | 507 | unsigned int tso, vlan; |
508 | dma_addr_t skb_dma; | 508 | dma_addr_t skb_dma; |
509 | unsigned int i; | 509 | unsigned int i; |
diff --git a/drivers/net/ethernet/synopsys/dwc-xlgmac-net.c b/drivers/net/ethernet/synopsys/dwc-xlgmac-net.c index 1f8e9601592a..a1f5a1e61040 100644 --- a/drivers/net/ethernet/synopsys/dwc-xlgmac-net.c +++ b/drivers/net/ethernet/synopsys/dwc-xlgmac-net.c | |||
@@ -116,7 +116,7 @@ static void xlgmac_prep_tx_pkt(struct xlgmac_pdata *pdata, | |||
116 | struct sk_buff *skb, | 116 | struct sk_buff *skb, |
117 | struct xlgmac_pkt_info *pkt_info) | 117 | struct xlgmac_pkt_info *pkt_info) |
118 | { | 118 | { |
119 | struct skb_frag_struct *frag; | 119 | skb_frag_t *frag; |
120 | unsigned int context_desc; | 120 | unsigned int context_desc; |
121 | unsigned int len; | 121 | unsigned int len; |
122 | unsigned int i; | 122 | unsigned int i; |
diff --git a/drivers/net/ethernet/tehuti/tehuti.c b/drivers/net/ethernet/tehuti/tehuti.c index 5d6960fe3309..0f8a924fc60c 100644 --- a/drivers/net/ethernet/tehuti/tehuti.c +++ b/drivers/net/ethernet/tehuti/tehuti.c | |||
@@ -1501,7 +1501,7 @@ bdx_tx_map_skb(struct bdx_priv *priv, struct sk_buff *skb, | |||
1501 | bdx_tx_db_inc_wptr(db); | 1501 | bdx_tx_db_inc_wptr(db); |
1502 | 1502 | ||
1503 | for (i = 0; i < nr_frags; i++) { | 1503 | for (i = 0; i < nr_frags; i++) { |
1504 | const struct skb_frag_struct *frag; | 1504 | const skb_frag_t *frag; |
1505 | 1505 | ||
1506 | frag = &skb_shinfo(skb)->frags[i]; | 1506 | frag = &skb_shinfo(skb)->frags[i]; |
1507 | db->wptr->len = skb_frag_size(frag); | 1507 | db->wptr->len = skb_frag_size(frag); |
diff --git a/drivers/net/usb/usbnet.c b/drivers/net/usb/usbnet.c index 72514c46b478..ace7ffaf3913 100644 --- a/drivers/net/usb/usbnet.c +++ b/drivers/net/usb/usbnet.c | |||
@@ -1324,10 +1324,10 @@ static int build_dma_sg(const struct sk_buff *skb, struct urb *urb) | |||
1324 | total_len += skb_headlen(skb); | 1324 | total_len += skb_headlen(skb); |
1325 | 1325 | ||
1326 | for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { | 1326 | for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { |
1327 | struct skb_frag_struct *f = &skb_shinfo(skb)->frags[i]; | 1327 | skb_frag_t *f = &skb_shinfo(skb)->frags[i]; |
1328 | 1328 | ||
1329 | total_len += skb_frag_size(f); | 1329 | total_len += skb_frag_size(f); |
1330 | sg_set_page(&urb->sg[i + s], f->page.p, f->size, | 1330 | sg_set_page(&urb->sg[i + s], skb_frag_page(f), skb_frag_size(f), |
1331 | f->page_offset); | 1331 | f->page_offset); |
1332 | } | 1332 | } |
1333 | urb->transfer_buffer_length = total_len; | 1333 | urb->transfer_buffer_length = total_len; |
diff --git a/drivers/net/vmxnet3/vmxnet3_drv.c b/drivers/net/vmxnet3/vmxnet3_drv.c index 2a1918f25e47..03feaeae89cd 100644 --- a/drivers/net/vmxnet3/vmxnet3_drv.c +++ b/drivers/net/vmxnet3/vmxnet3_drv.c | |||
@@ -657,8 +657,7 @@ static void | |||
657 | vmxnet3_append_frag(struct sk_buff *skb, struct Vmxnet3_RxCompDesc *rcd, | 657 | vmxnet3_append_frag(struct sk_buff *skb, struct Vmxnet3_RxCompDesc *rcd, |
658 | struct vmxnet3_rx_buf_info *rbi) | 658 | struct vmxnet3_rx_buf_info *rbi) |
659 | { | 659 | { |
660 | struct skb_frag_struct *frag = skb_shinfo(skb)->frags + | 660 | skb_frag_t *frag = skb_shinfo(skb)->frags + skb_shinfo(skb)->nr_frags; |
661 | skb_shinfo(skb)->nr_frags; | ||
662 | 661 | ||
663 | BUG_ON(skb_shinfo(skb)->nr_frags >= MAX_SKB_FRAGS); | 662 | BUG_ON(skb_shinfo(skb)->nr_frags >= MAX_SKB_FRAGS); |
664 | 663 | ||
@@ -755,7 +754,7 @@ vmxnet3_map_pkt(struct sk_buff *skb, struct vmxnet3_tx_ctx *ctx, | |||
755 | } | 754 | } |
756 | 755 | ||
757 | for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { | 756 | for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { |
758 | const struct skb_frag_struct *frag = &skb_shinfo(skb)->frags[i]; | 757 | const skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; |
759 | u32 buf_size; | 758 | u32 buf_size; |
760 | 759 | ||
761 | buf_offset = 0; | 760 | buf_offset = 0; |
@@ -956,7 +955,7 @@ static int txd_estimate(const struct sk_buff *skb) | |||
956 | int i; | 955 | int i; |
957 | 956 | ||
958 | for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { | 957 | for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { |
959 | const struct skb_frag_struct *frag = &skb_shinfo(skb)->frags[i]; | 958 | const skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; |
960 | 959 | ||
961 | count += VMXNET3_TXD_NEEDED(skb_frag_size(frag)); | 960 | count += VMXNET3_TXD_NEEDED(skb_frag_size(frag)); |
962 | } | 961 | } |
diff --git a/drivers/net/wireless/ath/wil6210/debugfs.c b/drivers/net/wireless/ath/wil6210/debugfs.c index 74834131cf7c..fd3b2b3d1b5c 100644 --- a/drivers/net/wireless/ath/wil6210/debugfs.c +++ b/drivers/net/wireless/ath/wil6210/debugfs.c | |||
@@ -1052,8 +1052,7 @@ static void wil_seq_print_skb(struct seq_file *s, struct sk_buff *skb) | |||
1052 | if (nr_frags) { | 1052 | if (nr_frags) { |
1053 | seq_printf(s, " nr_frags = %d\n", nr_frags); | 1053 | seq_printf(s, " nr_frags = %d\n", nr_frags); |
1054 | for (i = 0; i < nr_frags; i++) { | 1054 | for (i = 0; i < nr_frags; i++) { |
1055 | const struct skb_frag_struct *frag = | 1055 | const skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; |
1056 | &skb_shinfo(skb)->frags[i]; | ||
1057 | 1056 | ||
1058 | len = skb_frag_size(frag); | 1057 | len = skb_frag_size(frag); |
1059 | p = skb_frag_address_safe(frag); | 1058 | p = skb_frag_address_safe(frag); |
diff --git a/drivers/net/wireless/ath/wil6210/txrx.c b/drivers/net/wireless/ath/wil6210/txrx.c index eae00aafaa88..8b01ef8269da 100644 --- a/drivers/net/wireless/ath/wil6210/txrx.c +++ b/drivers/net/wireless/ath/wil6210/txrx.c | |||
@@ -1657,7 +1657,7 @@ static int __wil_tx_vring_tso(struct wil6210_priv *wil, struct wil6210_vif *vif, | |||
1657 | len); | 1657 | len); |
1658 | } else { | 1658 | } else { |
1659 | frag = &skb_shinfo(skb)->frags[f]; | 1659 | frag = &skb_shinfo(skb)->frags[f]; |
1660 | len = frag->size; | 1660 | len = skb_frag_size(frag); |
1661 | wil_dbg_txrx(wil, "TSO: frag[%d]: len %u\n", f, len); | 1661 | wil_dbg_txrx(wil, "TSO: frag[%d]: len %u\n", f, len); |
1662 | } | 1662 | } |
1663 | 1663 | ||
@@ -1678,8 +1678,8 @@ static int __wil_tx_vring_tso(struct wil6210_priv *wil, struct wil6210_vif *vif, | |||
1678 | 1678 | ||
1679 | if (!headlen) { | 1679 | if (!headlen) { |
1680 | pa = skb_frag_dma_map(dev, frag, | 1680 | pa = skb_frag_dma_map(dev, frag, |
1681 | frag->size - len, lenmss, | 1681 | skb_frag_size(frag) - len, |
1682 | DMA_TO_DEVICE); | 1682 | lenmss, DMA_TO_DEVICE); |
1683 | vring->ctx[i].mapped_as = wil_mapped_as_page; | 1683 | vring->ctx[i].mapped_as = wil_mapped_as_page; |
1684 | } else { | 1684 | } else { |
1685 | pa = dma_map_single(dev, | 1685 | pa = dma_map_single(dev, |
@@ -1900,8 +1900,7 @@ static int __wil_tx_ring(struct wil6210_priv *wil, struct wil6210_vif *vif, | |||
1900 | 1900 | ||
1901 | /* middle segments */ | 1901 | /* middle segments */ |
1902 | for (; f < nr_frags; f++) { | 1902 | for (; f < nr_frags; f++) { |
1903 | const struct skb_frag_struct *frag = | 1903 | const skb_frag_t *frag = &skb_shinfo(skb)->frags[f]; |
1904 | &skb_shinfo(skb)->frags[f]; | ||
1905 | int len = skb_frag_size(frag); | 1904 | int len = skb_frag_size(frag); |
1906 | 1905 | ||
1907 | *_d = *d; | 1906 | *_d = *d; |
diff --git a/drivers/net/wireless/ath/wil6210/txrx_edma.c b/drivers/net/wireless/ath/wil6210/txrx_edma.c index dc040cd4ab06..71b7ad4b6454 100644 --- a/drivers/net/wireless/ath/wil6210/txrx_edma.c +++ b/drivers/net/wireless/ath/wil6210/txrx_edma.c | |||
@@ -1471,7 +1471,7 @@ static int __wil_tx_ring_tso_edma(struct wil6210_priv *wil, | |||
1471 | /* Rest of the descriptors are from the SKB fragments */ | 1471 | /* Rest of the descriptors are from the SKB fragments */ |
1472 | for (f = 0; f < nr_frags; f++) { | 1472 | for (f = 0; f < nr_frags; f++) { |
1473 | skb_frag_t *frag = &skb_shinfo(skb)->frags[f]; | 1473 | skb_frag_t *frag = &skb_shinfo(skb)->frags[f]; |
1474 | int len = frag->size; | 1474 | int len = skb_frag_size(frag); |
1475 | 1475 | ||
1476 | wil_dbg_txrx(wil, "TSO: frag[%d]: len %u, descs_used %d\n", f, | 1476 | wil_dbg_txrx(wil, "TSO: frag[%d]: len %u, descs_used %d\n", f, |
1477 | len, descs_used); | 1477 | len, descs_used); |
diff --git a/drivers/net/xen-netback/netback.c b/drivers/net/xen-netback/netback.c index 1d9940d4e8c7..a96c5c2a2c5a 100644 --- a/drivers/net/xen-netback/netback.c +++ b/drivers/net/xen-netback/netback.c | |||
@@ -1055,7 +1055,7 @@ static int xenvif_handle_frag_list(struct xenvif_queue *queue, struct sk_buff *s | |||
1055 | int j; | 1055 | int j; |
1056 | skb->truesize += skb->data_len; | 1056 | skb->truesize += skb->data_len; |
1057 | for (j = 0; j < i; j++) | 1057 | for (j = 0; j < i; j++) |
1058 | put_page(frags[j].page.p); | 1058 | put_page(skb_frag_page(&frags[j])); |
1059 | return -ENOMEM; | 1059 | return -ENOMEM; |
1060 | } | 1060 | } |
1061 | 1061 | ||
@@ -1067,7 +1067,7 @@ static int xenvif_handle_frag_list(struct xenvif_queue *queue, struct sk_buff *s | |||
1067 | BUG(); | 1067 | BUG(); |
1068 | 1068 | ||
1069 | offset += len; | 1069 | offset += len; |
1070 | frags[i].page.p = page; | 1070 | __skb_frag_set_page(&frags[i], page); |
1071 | frags[i].page_offset = 0; | 1071 | frags[i].page_offset = 0; |
1072 | skb_frag_size_set(&frags[i], len); | 1072 | skb_frag_size_set(&frags[i], len); |
1073 | } | 1073 | } |
diff --git a/drivers/s390/net/qeth_core_main.c b/drivers/s390/net/qeth_core_main.c index 4d0caeebc802..5aa0f1268bca 100644 --- a/drivers/s390/net/qeth_core_main.c +++ b/drivers/s390/net/qeth_core_main.c | |||
@@ -3515,7 +3515,7 @@ static int qeth_get_elements_for_frags(struct sk_buff *skb) | |||
3515 | int cnt, elements = 0; | 3515 | int cnt, elements = 0; |
3516 | 3516 | ||
3517 | for (cnt = 0; cnt < skb_shinfo(skb)->nr_frags; cnt++) { | 3517 | for (cnt = 0; cnt < skb_shinfo(skb)->nr_frags; cnt++) { |
3518 | struct skb_frag_struct *frag = &skb_shinfo(skb)->frags[cnt]; | 3518 | skb_frag_t *frag = &skb_shinfo(skb)->frags[cnt]; |
3519 | 3519 | ||
3520 | elements += qeth_get_elements_for_range( | 3520 | elements += qeth_get_elements_for_range( |
3521 | (addr_t)skb_frag_address(frag), | 3521 | (addr_t)skb_frag_address(frag), |
diff --git a/drivers/scsi/fcoe/fcoe_transport.c b/drivers/scsi/fcoe/fcoe_transport.c index ba4603d76284..d0550384cc38 100644 --- a/drivers/scsi/fcoe/fcoe_transport.c +++ b/drivers/scsi/fcoe/fcoe_transport.c | |||
@@ -308,7 +308,7 @@ EXPORT_SYMBOL_GPL(fcoe_get_wwn); | |||
308 | u32 fcoe_fc_crc(struct fc_frame *fp) | 308 | u32 fcoe_fc_crc(struct fc_frame *fp) |
309 | { | 309 | { |
310 | struct sk_buff *skb = fp_skb(fp); | 310 | struct sk_buff *skb = fp_skb(fp); |
311 | struct skb_frag_struct *frag; | 311 | skb_frag_t *frag; |
312 | unsigned char *data; | 312 | unsigned char *data; |
313 | unsigned long off, len, clen; | 313 | unsigned long off, len, clen; |
314 | u32 crc; | 314 | u32 crc; |
diff --git a/drivers/staging/octeon/ethernet-tx.c b/drivers/staging/octeon/ethernet-tx.c index 20f513fbaa85..cc12c78f73f1 100644 --- a/drivers/staging/octeon/ethernet-tx.c +++ b/drivers/staging/octeon/ethernet-tx.c | |||
@@ -280,11 +280,10 @@ int cvm_oct_xmit(struct sk_buff *skb, struct net_device *dev) | |||
280 | hw_buffer.s.size = skb_headlen(skb); | 280 | hw_buffer.s.size = skb_headlen(skb); |
281 | CVM_OCT_SKB_CB(skb)[0] = hw_buffer.u64; | 281 | CVM_OCT_SKB_CB(skb)[0] = hw_buffer.u64; |
282 | for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { | 282 | for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { |
283 | struct skb_frag_struct *fs = skb_shinfo(skb)->frags + i; | 283 | skb_frag_t *fs = skb_shinfo(skb)->frags + i; |
284 | 284 | ||
285 | hw_buffer.s.addr = | 285 | hw_buffer.s.addr = |
286 | XKPHYS_TO_PHYS((u64)(page_address(fs->page.p) + | 286 | XKPHYS_TO_PHYS((u64)skb_frag_address(fs)); |
287 | fs->page_offset)); | ||
288 | hw_buffer.s.size = fs->size; | 287 | hw_buffer.s.size = fs->size; |
289 | CVM_OCT_SKB_CB(skb)[i + 1] = hw_buffer.u64; | 288 | CVM_OCT_SKB_CB(skb)[i + 1] = hw_buffer.u64; |
290 | } | 289 | } |
diff --git a/drivers/staging/unisys/visornic/visornic_main.c b/drivers/staging/unisys/visornic/visornic_main.c index 9d4f1dab0968..b889b04a6e25 100644 --- a/drivers/staging/unisys/visornic/visornic_main.c +++ b/drivers/staging/unisys/visornic/visornic_main.c | |||
@@ -285,8 +285,8 @@ static int visor_copy_fragsinfo_from_skb(struct sk_buff *skb, | |||
285 | count = add_physinfo_entries(page_to_pfn( | 285 | count = add_physinfo_entries(page_to_pfn( |
286 | skb_frag_page(&skb_shinfo(skb)->frags[frag])), | 286 | skb_frag_page(&skb_shinfo(skb)->frags[frag])), |
287 | skb_shinfo(skb)->frags[frag].page_offset, | 287 | skb_shinfo(skb)->frags[frag].page_offset, |
288 | skb_shinfo(skb)->frags[frag].size, count, | 288 | skb_frag_size(&skb_shinfo(skb)->frags[frag]), |
289 | frags_max, frags); | 289 | count, frags_max, frags); |
290 | /* add_physinfo_entries only returns | 290 | /* add_physinfo_entries only returns |
291 | * zero if the frags array is out of room | 291 | * zero if the frags array is out of room |
292 | * That should never happen because we | 292 | * That should never happen because we |
diff --git a/drivers/target/iscsi/cxgbit/cxgbit_target.c b/drivers/target/iscsi/cxgbit/cxgbit_target.c index 24309d937d8c..93212b9fd310 100644 --- a/drivers/target/iscsi/cxgbit/cxgbit_target.c +++ b/drivers/target/iscsi/cxgbit/cxgbit_target.c | |||
@@ -899,9 +899,9 @@ cxgbit_handle_immediate_data(struct iscsi_cmd *cmd, struct iscsi_scsi_req *hdr, | |||
899 | skb_frag_t *dfrag = &ssi->frags[pdu_cb->dfrag_idx]; | 899 | skb_frag_t *dfrag = &ssi->frags[pdu_cb->dfrag_idx]; |
900 | 900 | ||
901 | sg_init_table(&ccmd->sg, 1); | 901 | sg_init_table(&ccmd->sg, 1); |
902 | sg_set_page(&ccmd->sg, dfrag->page.p, skb_frag_size(dfrag), | 902 | sg_set_page(&ccmd->sg, skb_frag_page(dfrag), |
903 | dfrag->page_offset); | 903 | skb_frag_size(dfrag), dfrag->page_offset); |
904 | get_page(dfrag->page.p); | 904 | get_page(skb_frag_page(dfrag)); |
905 | 905 | ||
906 | cmd->se_cmd.t_data_sg = &ccmd->sg; | 906 | cmd->se_cmd.t_data_sg = &ccmd->sg; |
907 | cmd->se_cmd.t_data_nents = 1; | 907 | cmd->se_cmd.t_data_nents = 1; |
@@ -1403,7 +1403,8 @@ static void cxgbit_lro_skb_dump(struct sk_buff *skb) | |||
1403 | pdu_cb->ddigest, pdu_cb->frags); | 1403 | pdu_cb->ddigest, pdu_cb->frags); |
1404 | for (i = 0; i < ssi->nr_frags; i++) | 1404 | for (i = 0; i < ssi->nr_frags; i++) |
1405 | pr_info("skb 0x%p, frag %d, off %u, sz %u.\n", | 1405 | pr_info("skb 0x%p, frag %d, off %u, sz %u.\n", |
1406 | skb, i, ssi->frags[i].page_offset, ssi->frags[i].size); | 1406 | skb, i, ssi->frags[i].page_offset, |
1407 | skb_frag_size(&ssi->frags[i])); | ||
1407 | } | 1408 | } |
1408 | 1409 | ||
1409 | static void cxgbit_lro_hskb_reset(struct cxgbit_sock *csk) | 1410 | static void cxgbit_lro_hskb_reset(struct cxgbit_sock *csk) |
@@ -1447,7 +1448,7 @@ cxgbit_lro_skb_merge(struct cxgbit_sock *csk, struct sk_buff *skb, u8 pdu_idx) | |||
1447 | hpdu_cb->frags++; | 1448 | hpdu_cb->frags++; |
1448 | hpdu_cb->hfrag_idx = hfrag_idx; | 1449 | hpdu_cb->hfrag_idx = hfrag_idx; |
1449 | 1450 | ||
1450 | len = hssi->frags[hfrag_idx].size; | 1451 | len = skb_frag_size(&hssi->frags[hfrag_idx]);; |
1451 | hskb->len += len; | 1452 | hskb->len += len; |
1452 | hskb->data_len += len; | 1453 | hskb->data_len += len; |
1453 | hskb->truesize += len; | 1454 | hskb->truesize += len; |
@@ -1467,7 +1468,7 @@ cxgbit_lro_skb_merge(struct cxgbit_sock *csk, struct sk_buff *skb, u8 pdu_idx) | |||
1467 | 1468 | ||
1468 | get_page(skb_frag_page(&hssi->frags[dfrag_idx])); | 1469 | get_page(skb_frag_page(&hssi->frags[dfrag_idx])); |
1469 | 1470 | ||
1470 | len += hssi->frags[dfrag_idx].size; | 1471 | len += skb_frag_size(&hssi->frags[dfrag_idx]); |
1471 | 1472 | ||
1472 | hssi->nr_frags++; | 1473 | hssi->nr_frags++; |
1473 | hpdu_cb->frags++; | 1474 | hpdu_cb->frags++; |