-
Benjamin Herrenschmidt authored
Make IDE advertise only 128 entries of SG table on archs with an IOMMU. The current IOMMU implementations of pci_map_sg() may produce segments that don't match the boundary requirements of IDE, thus causing the driver to break them up. The BIO is supposed to account for that, however, it cannot account for a pci_map_sg producing a segment of the requested size, but with incorrect alignement, thus we may still try to break up the list in more entries than is supported by the HW. A similar fix already went in libata. The "real" long term fix will be to move the boundary requirements to struct device so that pci_map_sg() can respect them when producing the sglist. In the meantime, this band-aid works around the problem.
b71adb56