sata_nv: fix ATAPI issues with memory over 4GB (v7)
authorRobert Hancock <hancockr@shaw.ca>
Tue, 5 Feb 2008 01:39:02 +0000 (19:39 -0600)
committerJeff Garzik <jeff@garzik.org>
Wed, 6 Feb 2008 12:00:27 +0000 (07:00 -0500)
commit8959d300a79c1b70526cdf9e00485262cf8d979f
tree49a69098a15da63317ea230e11f86a9d4d7341f6
parent8d8b60046d6a2328ca4b9031b4948084f775f607
sata_nv: fix ATAPI issues with memory over 4GB (v7)

This fixes some problems with ATAPI devices on nForce4 controllers in ADMA mode
on systems with memory located above 4GB. We need to delay setting the 64-bit
DMA mask until the PRD table and padding buffer are allocated so that they don't
get allocated above 4GB and break legacy mode (which is needed for ATAPI
devices). Also, if either port is in ATAPI mode we need to set the DMA mask
for the PCI device to 32-bit to ensure that the IOMMU code properly bounces
requests above 4GB, as it appears setting the bounce limit does not guarantee
that we will not try to map requests above this point.

Reported to fix https://bugzilla.redhat.com/show_bug.cgi?id=351451

Signed-off-by: Robert Hancock <hancockr@shaw.ca>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
drivers/ata/sata_nv.c