qemu-e2k/hw/vfio
Alexey Kardashevskiy 567b5b309a vfio/pci: Relax DMA map errors for MMIO regions
At the moment if vfio_memory_listener is registered in the system memory
address space, it maps/unmaps every RAM memory region for DMA.
It expects system page size aligned memory sections so vfio_dma_map
would not fail and so far this has been the case. A mapping failure
would be fatal. A side effect of such behavior is that some MMIO pages
would not be mapped silently.

However we are going to change MSIX BAR handling so we will end having
non-aligned sections in vfio_memory_listener (more details is in
the next patch) and vfio_dma_map will exit QEMU.

In order to avoid fatal failures on what previously was not a failure and
was just silently ignored, this checks the section alignment to
the smallest supported IOMMU page size and prints an error if not aligned;
it also prints an error if vfio_dma_map failed despite the page size check.
Both errors are not fatal; only MMIO RAM regions are checked
(aka "RAM device" regions).

If the amount of errors printed is overwhelming, the MSIX relocation
could be used to avoid excessive error output.

This is unlikely to cause any behavioral change.

Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
[aw: Fix Int128 bit ops]
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
2018-03-13 11:17:30 -06:00
..
Makefile.objs vfio/display: core & wireup 2018-03-13 11:17:29 -06:00
amd-xgbe.c qdev: use device_class_set_parent_realize/unrealize/reset() 2018-02-05 13:54:38 +01:00
calxeda-xgmac.c qdev: use device_class_set_parent_realize/unrealize/reset() 2018-02-05 13:54:38 +01:00
ccw.c vfio-ccw: license text should indicate GPL v2 or later 2018-03-08 15:49:23 +01:00
common.c vfio/pci: Relax DMA map errors for MMIO regions 2018-03-13 11:17:30 -06:00
display.c vfio/display: adding dmabuf support 2018-03-13 11:17:30 -06:00
pci-quirks.c vfio/pci: Add option to disable GeForce quirks 2018-02-06 11:08:27 -07:00
pci.c vfio/display: core & wireup 2018-03-13 11:17:29 -06:00
pci.h vfio/display: adding region support 2018-03-13 11:17:30 -06:00
platform.c use g_path_get_basename instead of basename 2018-03-06 14:01:29 +01:00
spapr.c vfio, spapr: Fix levels calculation 2017-09-15 10:29:48 +10:00
trace-events vfio/pci: Allow relocating MSI-X MMIO 2018-02-06 11:08:26 -07:00