This is a note to let you know that I've just added the patch titled iommu/vt-d: Defer domain removal if device is assigned to a driver to the 3.16-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: iommu-vt-d-defer-domain-removal-if-device-is-assigned-to-a-driver.patch and it can be found in the queue-3.16 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From e7f9fa5498d91fcdc63d93007ba43f36b1a30538 Mon Sep 17 00:00:00 2001 From: Joerg Roedel <jroedel@xxxxxxx> Date: Tue, 5 Aug 2014 12:55:45 +0200 Subject: iommu/vt-d: Defer domain removal if device is assigned to a driver From: Joerg Roedel <jroedel@xxxxxxx> commit e7f9fa5498d91fcdc63d93007ba43f36b1a30538 upstream. When the BUS_NOTIFY_DEL_DEVICE event is received the device might still be attached to a driver. In this case the domain can't be released as the mappings might still be in use. Defer the domain removal in this case until we receivce the BUS_NOTIFY_UNBOUND_DRIVER event. Cc: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx> Cc: David Woodhouse <dwmw2@xxxxxxxxxxxxx> Signed-off-by: Joerg Roedel <jroedel@xxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- drivers/iommu/intel-iommu.c | 8 ++++++++ 1 file changed, 8 insertions(+) --- a/drivers/iommu/intel-iommu.c +++ b/drivers/iommu/intel-iommu.c @@ -3891,6 +3891,14 @@ static int device_notifier(struct notifi 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) + return 0; + domain = find_domain(dev); if (!domain) return 0; Patches currently in stable-queue which might be from jroedel@xxxxxxx are queue-3.16/iommu-amd-fix-cleanup_domain-for-mass-device-removal.patch queue-3.16/iommu-vt-d-exclude-devices-using-rmrrs-from-iommu-api-domains.patch queue-3.16/iommu-vt-d-defer-domain-removal-if-device-is-assigned-to-a-driver.patch -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html