sparc64: add the segment boundary checking to IOMMUs while merging SG entries
authorFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Fri, 28 Mar 2008 22:55:41 +0000 (15:55 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 28 Mar 2008 22:55:41 +0000 (15:55 -0700)
commitf08802572965873af97e74337d5740bfa2542941
treea28f31926b4f548d662cea2d6b2b1882b0214e24
parent76cc86ee6b3c261b96ea3ee2f4c6dfd127335881
sparc64: add the segment boundary checking to IOMMUs while merging SG entries

Some IOMMUs allocate memory areas spanning LLD's segment boundary limit.  It
forces low level drivers to have a workaround to adjust scatter lists that the
IOMMU builds.  We are in the process of making all the IOMMUs respect the
segment boundary limits to remove such work around in LLDs.

SPARC64 IOMMUs were rewritten to use the IOMMU helper functions and the commit
89c94f2f70d093f59b55d3ea8042d13889169346 made the IOMMUs not allocate memory
areas spanning the segment boundary limit.

However, SPARC64 IOMMUs allocate memory areas first then try to merge them
(while some IOMMUs walk through all the sg entries to see how they can be
merged first and allocate memory areas).  So SPARC64 IOMMUs also need the
boundary limit checking when they try to merge sg entries.

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
arch/sparc64/kernel/iommu.c
arch/sparc64/kernel/iommu_common.h
arch/sparc64/kernel/pci_sun4v.c