[POWERPC] DMA 4GB boundary protection
authorJake Moilanen <moilanen@austin.ibm.com>
Fri, 2 Mar 2007 21:49:43 +0000 (15:49 -0600)
committerPaul Mackerras <paulus@samba.org>
Fri, 9 Mar 2007 04:03:25 +0000 (15:03 +1100)
commit618d3adc351a24c4c48437c767befb88ca2d199d
tree73f74f50e89fb20a9829d5f971c0838a79324177
parent723ec731de880a76a004a304b62bf8d0f96435d8
[POWERPC] DMA 4GB boundary protection

There are many adapters which can not handle DMAing acrosss any 4 GB
boundary.  For instance the latest Emulex adapters.

This normally is not an issue as firmware gives us dma-windows under
4gigs.  However, some of the new System-P boxes have dma-windows above
4gigs, and this present a problem.

I propose fixing it in the IOMMU allocation instead of making each
driver protect against it as it is more efficient, and won't require
changing every driver which has not considered this issue.

This patch checks to see if the mapping spans a 4 gig boundary, and if
it does, retries the allocation.  It tries the next allocation at the
start of the crossed 4 gig boundary.

Signed-off-by: Jake Moilanen <moilanen@austin.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/powerpc/kernel/iommu.c