• Benjamin Herrenschmidt's avatar
    [PATCH] ppc64: Fix drivers/ide when using an IOMMU · b71adb56
    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
ide-probe.c 35.8 KB