sky2: convert to SKB paged frag API.
authorIan Campbell <Ian.Campbell@citrix.com>
Wed, 21 Sep 2011 21:53:18 +0000 (21:53 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 22 Sep 2011 20:04:15 +0000 (16:04 -0400)
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Cc: Stephen Hemminger <shemminger@linux-foundation.org>
Cc: netdev@vger.kernel.org
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/marvell/sky2.c

index 3ff0a1292933817d4523e586d5aa14b0f4e569ac..ef2dc021d09c8a6a6f2023a8157b17a5a956e6ec 100644 (file)
@@ -1226,10 +1226,9 @@ static int sky2_rx_map_skb(struct pci_dev *pdev, struct rx_ring_info *re,
        for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) {
                skb_frag_t *frag = &skb_shinfo(skb)->frags[i];
 
-               re->frag_addr[i] = pci_map_page(pdev, frag->page,
-                                               frag->page_offset,
-                                               frag->size,
-                                               PCI_DMA_FROMDEVICE);
+               re->frag_addr[i] = skb_frag_dma_map(&pdev->dev, frag, 0,
+                                                   frag->size,
+                                                   PCI_DMA_FROMDEVICE);
 
                if (pci_dma_mapping_error(pdev, re->frag_addr[i]))
                        goto map_page_error;
@@ -1910,8 +1909,8 @@ static netdev_tx_t sky2_xmit_frame(struct sk_buff *skb,
        for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) {
                const skb_frag_t *frag = &skb_shinfo(skb)->frags[i];
 
-               mapping = pci_map_page(hw->pdev, frag->page, frag->page_offset,
-                                      frag->size, PCI_DMA_TODEVICE);
+               mapping = skb_frag_dma_map(&hw->pdev->dev, frag, 0,
+                                          frag->size, PCI_DMA_TODEVICE);
 
                if (pci_dma_mapping_error(hw->pdev, mapping))
                        goto mapping_unwind;
@@ -2449,7 +2448,7 @@ static void skb_put_frags(struct sk_buff *skb, unsigned int hdr_space,
 
                if (length == 0) {
                        /* don't need this page */
-                       __free_page(frag->page);
+                       __skb_frag_unref(frag);
                        --skb_shinfo(skb)->nr_frags;
                } else {
                        size = min(length, (unsigned) PAGE_SIZE);