diff options
author | Lu Baolu <baolu.lu@linux.intel.com> | 2020-09-27 09:24:28 +0300 |
---|---|---|
committer | Joerg Roedel <jroedel@suse.de> | 2020-10-01 15:54:17 +0300 |
commit | 1a3f2fd7fc4e8f24510830e265de2ffb8e3300d2 (patch) | |
tree | 1f23f0361f6d748e89e462440dfdf4c968522139 /fs/pipe.c | |
parent | 0bbe4ced53e36786eafc2ecbf9a1761f55b4a82e (diff) | |
download | linux-1a3f2fd7fc4e8f24510830e265de2ffb8e3300d2.tar.xz |
iommu/vt-d: Fix lockdep splat in iommu_flush_dev_iotlb()
Lock(&iommu->lock) without disabling irq causes lockdep warnings.
[ 12.703950] ========================================================
[ 12.703962] WARNING: possible irq lock inversion dependency detected
[ 12.703975] 5.9.0-rc6+ #659 Not tainted
[ 12.703983] --------------------------------------------------------
[ 12.703995] systemd-udevd/284 just changed the state of lock:
[ 12.704007] ffffffffbd6ff4d8 (device_domain_lock){..-.}-{2:2}, at:
iommu_flush_dev_iotlb.part.57+0x2e/0x90
[ 12.704031] but this lock took another, SOFTIRQ-unsafe lock in the past:
[ 12.704043] (&iommu->lock){+.+.}-{2:2}
[ 12.704045]
and interrupts could create inverse lock ordering between
them.
[ 12.704073]
other info that might help us debug this:
[ 12.704085] Possible interrupt unsafe locking scenario:
[ 12.704097] CPU0 CPU1
[ 12.704106] ---- ----
[ 12.704115] lock(&iommu->lock);
[ 12.704123] local_irq_disable();
[ 12.704134] lock(device_domain_lock);
[ 12.704146] lock(&iommu->lock);
[ 12.704158] <Interrupt>
[ 12.704164] lock(device_domain_lock);
[ 12.704174]
*** DEADLOCK ***
Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
Link: https://lore.kernel.org/r/20200927062428.13713-1-baolu.lu@linux.intel.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
Diffstat (limited to 'fs/pipe.c')
0 files changed, 0 insertions, 0 deletions