Re: [PATCH 6/6] scatterlist: use sg_phys()
From: Dan Williams <hidden>
Date: 2015-08-08 01:15:53
Also in:
lkml
On Fri, Aug 7, 2015 at 9:15 AM, Christoph Hellwig [off-list ref] wrote:
From: Dan Williams <redacted> Coccinelle cleanup to replace open coded sg to physical address translations. This is in preparation for introducing scatterlists that reference __pfn_t. // sg_phys.cocci: convert usage page_to_phys(sg_page(sg)) to sg_phys(sg) // usage: make coccicheck COCCI=sg_phys.cocci MODE=patch virtual patch virtual report virtual org @@ struct scatterlist *sg; @@ - page_to_phys(sg_page(sg)) + sg->offset + sg_phys(sg) @@ struct scatterlist *sg; @@ - page_to_phys(sg_page(sg)) + sg_phys(sg) - sg->offset
So this ends up being an awkward conversion, a better one is: - page_to_phys(sg_page(sg)) + sg_phys(sg) & PAGE_MASK [..]
quoted hunk ↗ jump to hunk
diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c index 5852df8..e0faecc 100644 --- a/drivers/iommu/intel-iommu.c +++ b/drivers/iommu/intel-iommu.c@@ -2098,7 +2098,7 @@ static int __domain_mapping(struct dmar_domain *domain, unsigned long iov_pfn, sg_res = aligned_nrpages(sg->offset, sg->length); sg->dma_address = ((dma_addr_t)iov_pfn << VTD_PAGE_SHIFT) + sg->offset; sg->dma_length = sg->length; - pteval = page_to_phys(sg_page(sg)) | prot; + pteval = (sg_phys(sg) - sg->offset) | prot;
For example here, as Joerg pointed out. [1]: https://lkml.org/lkml/2015/6/10/230