]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
iommu/vt-d: Use virt_to_phys()
authorJason Gunthorpe <jgg@nvidia.com>
Mon, 10 Mar 2025 02:47:45 +0000 (10:47 +0800)
committerJoerg Roedel <jroedel@suse.de>
Mon, 10 Mar 2025 08:31:02 +0000 (09:31 +0100)
commita8653e5cc2047b6a3354dc072a9f1ebaff157eaa
treeaf23cd495d32b2e171d4fe4e48d3ebc596c869c8
parent9ce7603ad3cbae64003087de57834e8c5c856a20
iommu/vt-d: Use virt_to_phys()

If all the inlines are unwound virt_to_dma_pfn() is simply:
   return page_to_pfn(virt_to_page(p)) << (PAGE_SHIFT - VTD_PAGE_SHIFT);

Which can be re-arranged to:
   (page_to_pfn(virt_to_page(p)) << PAGE_SHIFT) >> VTD_PAGE_SHIFT

The only caller is:
   ((uint64_t)virt_to_dma_pfn(tmp_page) << VTD_PAGE_SHIFT)

re-arranged to:
   ((page_to_pfn(virt_to_page(tmp_page)) << PAGE_SHIFT) >> VTD_PAGE_SHIFT)
           << VTD_PAGE_SHIFT

Which simplifies to:
   page_to_pfn(virt_to_page(tmp_page)) << PAGE_SHIFT

That is the same as virt_to_phys(tmp_page), so just remove all of this.

Reviewed-by: Lu Baolu <baolu.lu@linux.intel.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Link: https://lore.kernel.org/r/8-v3-e797f4dc6918+93057-iommu_pages_jgg@nvidia.com
Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/intel/iommu.c
drivers/iommu/intel/iommu.h