Message ID | 20220228005056.599595-6-baolu.lu@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Fix BUG_ON in vfio_iommu_group_notifier() | expand |
On Mon, Feb 28, 2022 at 08:50:50AM +0800, Lu Baolu wrote: > The current VFIO implementation allows pci-stub driver to be bound to > a PCI device with other devices in the same IOMMU group being assigned > to userspace. The pci-stub driver has no dependencies on DMA or the > IOVA mapping of the device, but it does prevent the user from having > direct access to the device, which is useful in some circumstances. > > The pci_dma_configure() marks the iommu_group as containing only devices > with kernel drivers that manage DMA. For compatibility with the VFIO > usage, avoid this default behavior for the pci_stub. This allows the > pci_stub still able to be used by the admin to block driver binding after > applying the DMA ownership to VFIO. > > Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com> > Reviewed-by: Jason Gunthorpe <jgg@nvidia.com> Acked-by: Bjorn Helgaas <bhelgaas@google.com> > --- > drivers/pci/pci-stub.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/pci/pci-stub.c b/drivers/pci/pci-stub.c > index e408099fea52..d1f4c1ce7bd1 100644 > --- a/drivers/pci/pci-stub.c > +++ b/drivers/pci/pci-stub.c > @@ -36,6 +36,7 @@ static struct pci_driver stub_driver = { > .name = "pci-stub", > .id_table = NULL, /* only dynamic id's */ > .probe = pci_stub_probe, > + .driver_managed_dma = true, > }; > > static int __init pci_stub_init(void) > -- > 2.25.1 > > _______________________________________________ > iommu mailing list > iommu@lists.linux-foundation.org > https://lists.linuxfoundation.org/mailman/listinfo/iommu
diff --git a/drivers/pci/pci-stub.c b/drivers/pci/pci-stub.c index e408099fea52..d1f4c1ce7bd1 100644 --- a/drivers/pci/pci-stub.c +++ b/drivers/pci/pci-stub.c @@ -36,6 +36,7 @@ static struct pci_driver stub_driver = { .name = "pci-stub", .id_table = NULL, /* only dynamic id's */ .probe = pci_stub_probe, + .driver_managed_dma = true, }; static int __init pci_stub_init(void)