Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'iommu-fix-v5.2-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu

Pull iommu fix from Joerg Roedel:
"Revert a commit from the previous pile of fixes which causes new
lockdep splats. It is better to revert it for now and work on a better
and more well tested fix"

* tag 'iommu-fix-v5.2-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:
Revert "iommu/vt-d: Fix lock inversion between iommu->lock and device_domain_lock"

+3 -4
+3 -4
drivers/iommu/intel-iommu.c
··· 2504 2504 } 2505 2505 } 2506 2506 2507 - spin_lock(&iommu->lock); 2508 2507 spin_lock_irqsave(&device_domain_lock, flags); 2509 2508 if (dev) 2510 2509 found = find_domain(dev); ··· 2519 2520 2520 2521 if (found) { 2521 2522 spin_unlock_irqrestore(&device_domain_lock, flags); 2522 - spin_unlock(&iommu->lock); 2523 2523 free_devinfo_mem(info); 2524 2524 /* Caller must free the original domain */ 2525 2525 return found; 2526 2526 } 2527 2527 2528 + spin_lock(&iommu->lock); 2528 2529 ret = domain_attach_iommu(domain, iommu); 2530 + spin_unlock(&iommu->lock); 2531 + 2529 2532 if (ret) { 2530 2533 spin_unlock_irqrestore(&device_domain_lock, flags); 2531 - spin_unlock(&iommu->lock); 2532 2534 free_devinfo_mem(info); 2533 2535 return NULL; 2534 2536 } ··· 2539 2539 if (dev) 2540 2540 dev->archdata.iommu = info; 2541 2541 spin_unlock_irqrestore(&device_domain_lock, flags); 2542 - spin_unlock(&iommu->lock); 2543 2542 2544 2543 /* PASID table is mandatory for a PCI device in scalable mode. */ 2545 2544 if (dev && dev_is_pci(dev) && sm_supported(iommu)) {