On Mon, Feb 01, 2021 at 04:28:28PM +0000, Max Gurtovoy wrote: > This patch doesn't change any logic but only align to the concept of > vfio_pci_core extensions. Extensions that are related to a platform > and not to a specific vendor of PCI devices should be part of the > core driver. Extensions that are specific for PCI device vendor should go > to a dedicated vendor vfio-pci driver. > > For now, powernv extensions will include only nvlink2. > > Signed-off-by: Max Gurtovoy <mgurtovoy@xxxxxxxxxx> > drivers/vfio/pci/Kconfig | 6 ++++-- > drivers/vfio/pci/Makefile | 2 +- > drivers/vfio/pci/vfio_pci_core.c | 4 ++-- > drivers/vfio/pci/{vfio_pci_nvlink2.c => vfio_pci_powernv.c} | 0 > drivers/vfio/pci/vfio_pci_private.h | 2 +- > 5 files changed, 8 insertions(+), 6 deletions(-) > rename drivers/vfio/pci/{vfio_pci_nvlink2.c => vfio_pci_powernv.c} (100%) This is really nothing to do with PPC, "nvlink" is a PCI device that shows the entire GPU memory space on these special power systems, and the this driver changes the normal vfio-pci behavior to match the single device. This is probably the best existing example of something that could be a vendor PCI driver because of how single-device specific it really is. Read 7f92891778dff62303c070ac81de7b7d80de331a to get some sense of how very special a device it is. This could be like mlx5, with the single PCI ID pre-populated in a match table. That is probably the key test for vfio_pci_core vs vfio_pci - if the modification is triggered by a single PCI ID that can be matched it is vfio_pci side, not core. Compared to the s390 stuff which applies to all PCI devices in the system. Jason