vfio: use static window sizing for sPAPR IOMMU
authorDavid Christensen <drc@linux.vnet.ibm.com>
Tue, 10 Nov 2020 17:43:32 +0000 (09:43 -0800)
committerThomas Monjalon <thomas@monjalon.net>
Fri, 13 Nov 2020 08:35:18 +0000 (09:35 +0100)
commit2d0a972cd66bad6564c6d050e0f341a44a237dc9
tree982a44c7aeadbe2ce8e13cdc105cfa85cedf200e
parentcb2587644ee65c0956a66529644a5d001d920824
vfio: use static window sizing for sPAPR IOMMU

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>
lib/librte_eal/linux/eal_vfio.c