This series includes few enhancements in the migration area and some fixes in mlx5 driver as of below. It splits migration ops from the main device ops, this enables a driver to safely set its migration's ops only when migration is supported and leave the other code around (e.g., core, driver) clean. Registering different structs based on the device capabilities might start to hit combinatorial explosion when we'll introduce ops for dirty logging that may be optional too. As part of that, adapt mlx5 to this scheme and fix some issues around its migration capable usage. V2: - Validate ops construction and migration mandatory flags on registration as was asked by Kevin and Jason. - As of the above move to use a single 'mig_ops' check in vfio before calling the driver. V1: https://lore.kernel.org/all/20220626083958.54175-1-yishaih@xxxxxxxxxx/ - Add a comment about the required usage of 'mig_ops' as was suggested by Alex. - Add Kevin's Reviewed-by tag. V0: https://lore.kernel.org/all/20220616170118.497620ba.alex.williamson@xxxxxxxxxx/T/ Yishai Yishai Hadas (2): vfio/mlx5: Protect mlx5vf_disable_fds() upon close device vfio: Split migration ops from main device ops .../vfio/pci/hisilicon/hisi_acc_vfio_pci.c | 11 +++++-- drivers/vfio/pci/mlx5/cmd.c | 14 ++++++++- drivers/vfio/pci/mlx5/cmd.h | 4 ++- drivers/vfio/pci/mlx5/main.c | 11 ++++--- drivers/vfio/pci/vfio_pci_core.c | 7 +++++ drivers/vfio/vfio.c | 11 ++++--- include/linux/vfio.h | 30 ++++++++++++------- 7 files changed, 63 insertions(+), 25 deletions(-) -- 2.18.1