vfio: fix expanding DMA area in ppc64le
authorTakeshi Yoshimura <tyos@jp.ibm.com>
Sat, 13 Jul 2019 01:15:32 +0000 (18:15 -0700)
committerThomas Monjalon <thomas@monjalon.net>
Tue, 16 Jul 2019 10:56:03 +0000 (12:56 +0200)
commite072d16f892032f64644a20718276215c21af316
tree1f5a9e17069d93bb197b7b5c607415f5275e869e
parent9d10f53e403820e35c68ba581c065db7e12cbe3d
vfio: fix expanding DMA area in ppc64le

In ppc64le, expanding DMA areas always fail because we cannot remove
a DMA window. As a result, we cannot allocate more than one memseg in
ppc64le. This is because vfio_spapr_dma_mem_map() doesn't unmap all
the mapped DMA before removing the window. This patch fixes this
incorrect behavior.

I also fixed the order of ioctl for unregister and unmap. The ioctl
for unregister sometimes report device busy errors due to the
existence of mapped area.

Signed-off-by: Takeshi Yoshimura <tyos@jp.ibm.com>
Acked-by: David Christensen <drc@linux.vnet.ibm.com>
lib/librte_eal/linux/eal/eal_vfio.c