Fix: (taken from the Xen changelog) This patch adds a new check, check_pages_physically_contiguous(),
to the test for pages stradding page boundaries both in swiotlb_map_sg() and dma_map_sg(), to capture these ranges and map them directly via virt_to_bus() mapping rather than through the swiotlb.
SRU justification:
Impact: Using SWIOMMU unnecessarily causes "out of space" errors and subsequently causes corruptions in software RAID (and probably also caused the problems mentioned in https:/ /bugs.launchpad .net/ubuntu/ +source/ linux/+ bug/238118/ comments/ 9).
Fix: (taken from the Xen changelog) This patch adds a new check, check_pages_ physically_ contiguous( ),
to the test for pages stradding page boundaries both in swiotlb_map_sg() and dma_map_sg(), to capture these ranges and map them directly via virt_to_bus() mapping rather than through the swiotlb.
Testcase: See above.