vfio/common: Move vfio_host_win_add/del into spapr.c
commita2347c60a86a7c2a227ebab186a195d16e1e3901
authorZhenzhong Duan <zhenzhong.duan@intel.com>
Thu, 2 Nov 2023 07:12:26 +0000 (2 15:12 +0800)
committerCédric Le Goater <clg@redhat.com>
Mon, 6 Nov 2023 12:23:23 +0000 (6 13:23 +0100)
treebe3df047546f36345ac7807e7ffc41213c71b5ce
parenta17879f0e2e82c5e85440eb1c3e8a3eeef469a3e
vfio/common: Move vfio_host_win_add/del into spapr.c

Only spapr supports a customed host window list, other vfio driver
assume 64bit host window. So remove the check in listener callback
and move vfio_host_win_add/del into spapr.c and make it static.

With the check removed, we still need to do the same check for
VFIO_SPAPR_TCE_IOMMU which allows a single host window range
[dma32_window_start, dma32_window_size). Move vfio_find_hostwin
into spapr.c and do same check in vfio_container_add_section_window
instead.

When mapping a ram device section, if it's unaligned with
hostwin->iova_pgsizes, this mapping is bypassed. With hostwin
moved into spapr, we changed to check container->pgsizes.

Suggested-by: Alex Williamson <alex.williamson@redhat.com>
Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Signed-off-by: Cédric Le Goater <clg@redhat.com>
hw/vfio/common.c
hw/vfio/container.c
hw/vfio/spapr.c
include/hw/vfio/vfio-common.h