swiotlb_full(hwdev, sg->length, dir, 0);
                                swiotlb_unmap_sg_attrs(hwdev, sgl, i, dir,
                                                       attrs);
-                               sgl[0].dma_length = 0;
+                               sg_dma_len(sgl) = 0;
                                return 0;
                        }
                        sg->dma_address = phys_to_dma(hwdev, map);
                } else
                        sg->dma_address = dev_addr;
-               sg->dma_length = sg->length;
+               sg_dma_len(sg) = sg->length;
        }
        return nelems;
 }
        BUG_ON(dir == DMA_NONE);
 
        for_each_sg(sgl, sg, nelems, i)
-               unmap_single(hwdev, sg->dma_address, sg->dma_length, dir);
+               unmap_single(hwdev, sg->dma_address, sg_dma_len(sg), dir);
 
 }
 EXPORT_SYMBOL(swiotlb_unmap_sg_attrs);
 
        for_each_sg(sgl, sg, nelems, i)
                swiotlb_sync_single(hwdev, sg->dma_address,
-                                   sg->dma_length, dir, target);
+                                   sg_dma_len(sg), dir, target);
 }
 
 void