2d0a972cd6
The SPAPR IOMMU requires that a DMA window size be defined before memory can be mapped for DMA. Current code dynamically modifies the DMA window size in response to every new memory allocation which is potentially dangerous because all existing mappings need to be unmapped/remapped in order to resize the DMA window, leaving hardware holding IOVA addresses that are temporarily unmapped. The new SPAPR code statically assigns the DMA window size on first use, using the largest physical memory memory address when IOVA=PA and the highest existing memseg virtual address when IOVA=VA. Signed-off-by: David Christensen <drc@linux.vnet.ibm.com> Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>