--- a/drivers/iommu/intel/iommu.c 2021-05-14 09:50:46.000000000 +0200 +++ b/drivers/iommu/intel/iommu.c 2021-05-16 01:02:17.816810690 +0200 @@ -2373,7 +2373,10 @@ static int __domain_mapping(struct dmar_ } } - pteval = ((phys_addr_t)phys_pfn << VTD_PAGE_SHIFT) | attr; + if (!sg) { + sg_res = nr_pages; + pteval = ((phys_addr_t)phys_pfn << VTD_PAGE_SHIFT) | attr; + } while (nr_pages > 0) { uint64_t tmp;