vfio/ccw: Convert to use vfio_register_emulated_iommu_dev()
authorJason Gunthorpe <jgg@nvidia.com>
Tue, 26 Oct 2021 17:57:33 +0000 (14:57 -0300)
committerAlex Williamson <alex.williamson@redhat.com>
Thu, 28 Oct 2021 17:06:31 +0000 (11:06 -0600)
commit3bf1311f351ef289f2aee79b86bcece2039fa611
tree6f701bc254cc677df38356bda766affd17c44774
parent39b6ee011f341526308577847f1002be5d1e0a6e
vfio/ccw: Convert to use vfio_register_emulated_iommu_dev()

This is a more complicated conversion because vfio_ccw is sharing the
vfio_device between both the mdev_device, its vfio_device and the
css_driver.

The mdev is a singleton, and the reason for this sharing is so the extra
css_driver function callbacks to be delivered to the vfio_device
implementation.

This keeps things as they are, with the css_driver allocating the
singleton, not the mdev_driver.

Embed the vfio_device in the vfio_ccw_private and instantiate it as a
vfio_device when the mdev probes. The drvdata of both the css_device and
the mdev_device point at the private, and container_of is used to get it
back from the vfio_device.

Reviewed-by: Eric Farman <farman@linux.ibm.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Link: https://lore.kernel.org/r/4-v4-cea4f5bd2c00+b52-ccw_mdev_jgg@nvidia.com
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
drivers/s390/cio/vfio_ccw_drv.c
drivers/s390/cio/vfio_ccw_ops.c
drivers/s390/cio/vfio_ccw_private.h