On Tue, 2014-09-30 at 13:02 +0200, Joerg Roedel wrote: > From: Joerg Roedel <[email protected]> > > This makes sure any RMRR mappings stay in place when the > driver is unbound from the device. > > Signed-off-by: Joerg Roedel <[email protected]> > --- > drivers/iommu/intel-iommu.c | 11 +---------- > 1 file changed, 1 insertion(+), 10 deletions(-) > > diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c > index 5619f26..eaf825a 100644 > --- a/drivers/iommu/intel-iommu.c > +++ b/drivers/iommu/intel-iommu.c > @@ -3865,16 +3865,7 @@ static int device_notifier(struct notifier_block *nb, > if (iommu_dummy(dev)) > return 0; > > - if (action != BUS_NOTIFY_UNBOUND_DRIVER && > - action != BUS_NOTIFY_DEL_DEVICE) > - return 0; > - > - /* > - * If the device is still attached to a device driver we can't > - * tear down the domain yet as DMA mappings may still be in use. > - * Wait for the BUS_NOTIFY_UNBOUND_DRIVER event to do that. > - */ > - if (action == BUS_NOTIFY_DEL_DEVICE && dev->driver != NULL) > + if (action != BUS_NOTIFY_REMOVED_DEVICE)
I haven't tested it, but I'm concerned whether this has introduced a domain leak. If we think about the case of unbinding a device from a host driver and attaching it to a domain through the IOMMU API, I think we used to count on this path to call domain_exit(), which made the domain_context_mapped() in intel_iommu_attach_device() "unlikely". With this change, isn't the test in intel_iommu_attach_device() now neither likely nor unlikely and we're only removing the dev_info from the domain and not destroying the domain itself? Thanks, Alex -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

