diff options
author | Ian Campbell <Ian.Campbell@citrix.com> | 2011-10-05 00:28:50 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-10-05 17:36:01 -0400 |
commit | 5dc3e196ea21e833128d51eb5b788a070fea1f28 (patch) | |
tree | 03b6cc36eed14c8b7e3b93a6129f69229cb411b7 | |
parent | 6caaf90be1ca9dee045133f43a87fc564149ff91 (diff) | |
download | linux-5dc3e196ea21e833128d51eb5b788a070fea1f28.tar.gz linux-5dc3e196ea21e833128d51eb5b788a070fea1f28.tar.bz2 linux-5dc3e196ea21e833128d51eb5b788a070fea1f28.zip |
myri10ge: convert to SKB paged frag API.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Cc: Jon Mason <mason@myri.com>
Cc: Andrew Gallatin <gallatin@myri.com>
Cc: netdev@vger.kernel.org
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/ethernet/myricom/myri10ge/myri10ge.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/net/ethernet/myricom/myri10ge/myri10ge.c b/drivers/net/ethernet/myricom/myri10ge/myri10ge.c index 81c17002374b..8bf60348844d 100644 --- a/drivers/net/ethernet/myricom/myri10ge/myri10ge.c +++ b/drivers/net/ethernet/myricom/myri10ge/myri10ge.c @@ -1342,7 +1342,7 @@ myri10ge_rx_done(struct myri10ge_slice_state *ss, int len, __wsum csum, /* Fill skb_frag_struct(s) with data from our receive */ for (i = 0, remainder = len; remainder > 0; i++) { myri10ge_unmap_rx_page(pdev, &rx->info[idx], bytes); - rx_frags[i].page = rx->info[idx].page; + __skb_frag_set_page(&rx_frags[i], rx->info[idx].page); rx_frags[i].page_offset = rx->info[idx].page_offset; if (remainder < MYRI10GE_ALLOC_SIZE) rx_frags[i].size = remainder; @@ -1375,7 +1375,7 @@ myri10ge_rx_done(struct myri10ge_slice_state *ss, int len, __wsum csum, ss->stats.rx_dropped++; do { i--; - put_page(rx_frags[i].page); + __skb_frag_unref(&rx_frags[i]); } while (i != 0); return 0; } @@ -1383,7 +1383,7 @@ myri10ge_rx_done(struct myri10ge_slice_state *ss, int len, __wsum csum, /* Attach the pages to the skb, and trim off any padding */ myri10ge_rx_skb_build(skb, va, rx_frags, len, hlen); if (skb_shinfo(skb)->frags[0].size <= 0) { - put_page(skb_shinfo(skb)->frags[0].page); + skb_frag_unref(skb, 0); skb_shinfo(skb)->nr_frags = 0; } skb->protocol = eth_type_trans(skb, dev); @@ -2284,7 +2284,7 @@ myri10ge_get_frag_header(struct skb_frag_struct *frag, void **mac_hdr, struct ethhdr *eh; struct vlan_ethhdr *veh; struct iphdr *iph; - u8 *va = page_address(frag->page) + frag->page_offset; + u8 *va = skb_frag_address(frag); unsigned long ll_hlen; /* passed opaque through lro_receive_frags() */ __wsum csum = (__force __wsum) (unsigned long)priv; @@ -2927,8 +2927,8 @@ again: frag = &skb_shinfo(skb)->frags[frag_idx]; frag_idx++; len = frag->size; - bus = pci_map_page(mgp->pdev, frag->page, frag->page_offset, - len, PCI_DMA_TODEVICE); + bus = skb_frag_dma_map(&mgp->pdev->dev, frag, 0, len, + PCI_DMA_TODEVICE); dma_unmap_addr_set(&tx->info[idx], bus, bus); dma_unmap_len_set(&tx->info[idx], len, len); } |