qlge: convert to SKB paged frag API.
authorIan Campbell <Ian.Campbell@citrix.com>
Wed, 31 Aug 2011 00:47:05 +0000 (00:47 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 15 Sep 2011 19:35:00 +0000 (15:35 -0400)
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Cc: Anirban Chakraborty <anirban.chakraborty@qlogic.com>
Cc: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com>
Cc: Ron Mercer <ron.mercer@qlogic.com>
Cc: linux-driver@qlogic.com
Cc: netdev@vger.kernel.org
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/qlogic/qlge/qlge_main.c

index 39360c485867dd23434ab0fe4efd352edf9cdcc2..ce6c6fee3089f63b2f0f900968f6f03a773aaa38 100644 (file)
@@ -1431,10 +1431,8 @@ static int ql_map_send(struct ql_adapter *qdev,
                        map_idx++;
                }
 
-               map =
-                   pci_map_page(qdev->pdev, frag->page,
-                                frag->page_offset, frag->size,
-                                PCI_DMA_TODEVICE);
+               map = skb_frag_dma_map(&qdev->pdev->dev, frag, 0, frag->size,
+                                      PCI_DMA_TODEVICE);
 
                err = pci_dma_mapping_error(qdev->pdev, map);
                if (err) {
@@ -1477,8 +1475,6 @@ static void ql_process_mac_rx_gro_page(struct ql_adapter *qdev,
 {
        struct sk_buff *skb;
        struct bq_desc *lbq_desc = ql_get_curr_lchunk(qdev, rx_ring);
-       struct skb_frag_struct *rx_frag;
-       int nr_frags;
        struct napi_struct *napi = &rx_ring->napi;
 
        napi->dev = qdev->ndev;
@@ -1492,12 +1488,10 @@ static void ql_process_mac_rx_gro_page(struct ql_adapter *qdev,
                return;
        }
        prefetch(lbq_desc->p.pg_chunk.va);
-       rx_frag = skb_shinfo(skb)->frags;
-       nr_frags = skb_shinfo(skb)->nr_frags;
-       rx_frag += nr_frags;
-       rx_frag->page = lbq_desc->p.pg_chunk.page;
-       rx_frag->page_offset = lbq_desc->p.pg_chunk.offset;
-       rx_frag->size = length;
+       __skb_fill_page_desc(skb, skb_shinfo(skb)->nr_frags,
+                            lbq_desc->p.pg_chunk.page,
+                            lbq_desc->p.pg_chunk.offset,
+                            length);
 
        skb->len += length;
        skb->data_len += length;