for (frag = skb_shinfo(skb)->frags; len_left; frag++) {
                len_left -= frag->size;
                enic_queue_wq_desc_cont(wq, skb,
-                       pci_map_page(enic->pdev, frag->page,
-                               frag->page_offset, frag->size,
-                               PCI_DMA_TODEVICE),
+                       skb_frag_dma_map(&enic->pdev->dev,
+                                        frag, 0, frag->size,
+                                        PCI_DMA_TODEVICE),
                        frag->size,
                        (len_left == 0),        /* EOP? */
                        loopback);
        for (frag = skb_shinfo(skb)->frags; len_left; frag++) {
                len_left -= frag->size;
                frag_len_left = frag->size;
-               offset = frag->page_offset;
+               offset = 0;
 
                while (frag_len_left) {
                        len = min(frag_len_left,
                                (unsigned int)WQ_ENET_MAX_DESC_LEN);
-                       dma_addr = pci_map_page(enic->pdev, frag->page,
-                               offset, len,
-                               PCI_DMA_TODEVICE);
+                       dma_addr = skb_frag_dma_map(&enic->pdev->dev, frag,
+                                                   offset, len,
+                                                   PCI_DMA_TODEVICE);
                        enic_queue_wq_desc_cont(wq, skb,
                                dma_addr,
                                len,