+ /*
+ * If both the physical buffer start address and size are
+ * page aligned, we don't need to use a bounce page.
+ */
+ if (IS_ENABLED(CONFIG_SWIOTLB) && dev_is_untrusted(dev) &&
+ iova_offset(iovad, phys | org_size)) {
+ aligned_size = iova_align(iovad, org_size);
+ phys = swiotlb_tbl_map_single(dev,
+ phys_to_dma(dev, io_tlb_start),
+ phys, org_size, aligned_size, dir, attrs);
swiotlb_tbl_map_single takes one less argument in 5.10-rc now.