slot = 0;
                }
 
-               tpd->iovec[slot].addr = dma_map_single(&he_dev->pci_dev->dev,
-                       (void *) page_address(frag->page) + frag->page_offset,
-                               frag->size, DMA_TO_DEVICE);
-               tpd->iovec[slot].len = frag->size;
+               tpd->iovec[slot].addr = skb_frag_dma_map(&he_dev->pci_dev->dev,
+                               frag, 0, skb_frag_size(frag), DMA_TO_DEVICE);
+               tpd->iovec[slot].len = skb_frag_size(frag);
                ++slot;
 
        }
 
 
                print_hex_dump(KERN_DEBUG, "TX: ", DUMP_PREFIX_OFFSET, 16, 1,
                               skb_frag_address(&skb_shinfo(skb)->frags[i]),
-                              skb_shinfo(skb)->frags[i].size, true);
+                              skb_frag_size(&skb_shinfo(skb)->frags[i]), true);
        }
 }
 
 
        /* populate the rest of SGT entries */
        for (i = 0; i < nr_frags; i++) {
                frag = &skb_shinfo(skb)->frags[i];
-               frag_len = frag->size;
+               frag_len = skb_frag_size(frag);
                WARN_ON(!skb_frag_page(frag));
                addr = skb_frag_dma_map(dev, frag, 0,
                                        frag_len, dma_dir);
 
        if (skb_is_gso(skb)) {
                for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) {
                        frag = &skb_shinfo(skb)->frags[i];
-                       nfrags += DIV_ROUND_UP(frag->size, MTK_TX_DMA_BUF_LEN);
+                       nfrags += DIV_ROUND_UP(skb_frag_size(frag),
+                                               MTK_TX_DMA_BUF_LEN);
                }
        } else {
                nfrags += skb_shinfo(skb)->nr_frags;
 
 
                        hw_buffer.s.addr =
                                XKPHYS_TO_PHYS((u64)skb_frag_address(fs));
-                       hw_buffer.s.size = fs->size;
+                       hw_buffer.s.size = skb_drag_size(fs);
                        CVM_OCT_SKB_CB(skb)[i + 1] = hw_buffer.u64;
                }
                hw_buffer.s.addr = XKPHYS_TO_PHYS((u64)CVM_OCT_SKB_CB(skb));
 
                hpdu_cb->frags++;
                hpdu_cb->hfrag_idx = hfrag_idx;
 
-               len = skb_frag_size(&hssi->frags[hfrag_idx]);;
+               len = skb_frag_size(&hssi->frags[hfrag_idx]);
                hskb->len += len;
                hskb->data_len += len;
                hskb->truesize += len;