Merge branch 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
* 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (27 commits)
rtmutex: Add missing rcu_read_unlock() in debug_rt_mutex_print_deadlock()
lockdep: Comment all warnings
lib: atomic64: Change the type of local lock to raw_spinlock_t
locking, lib/atomic64: Annotate atomic64_lock::lock as raw
locking, x86, iommu: Annotate qi->q_lock as raw
locking, x86, iommu: Annotate irq_2_ir_lock as raw
locking, x86, iommu: Annotate iommu->register_lock as raw
locking, dma, ipu: Annotate bank_lock as raw
locking, ARM: Annotate low level hw locks as raw
locking, drivers/dca: Annotate dca_lock as raw
locking, powerpc: Annotate uic->lock as raw
locking, x86: mce: Annotate cmci_discover_lock as raw
locking, ACPI: Annotate c3_lock as raw
locking, oprofile: Annotate oprofilefs lock as raw
locking, video: Annotate vga console lock as raw
locking, latencytop: Annotate latency_lock as raw
locking, timer_stats: Annotate table_lock as raw
locking, rwsem: Annotate inner lock as raw
locking, semaphores: Annotate inner lock as raw
locking, sched: Annotate thread_group_cputimer as raw
...
Fix up conflicts in kernel/posix-cpu-timers.c manually: making
cputimer->cputime a raw lock conflicted with the ABBA fix in commit
bcd5cff721
("cputimer: Cure lock inversion").
This commit is contained in:
@@ -939,7 +939,7 @@ static void iommu_set_root_entry(struct intel_iommu *iommu)
|
||||
|
||||
addr = iommu->root_entry;
|
||||
|
||||
spin_lock_irqsave(&iommu->register_lock, flag);
|
||||
raw_spin_lock_irqsave(&iommu->register_lock, flag);
|
||||
dmar_writeq(iommu->reg + DMAR_RTADDR_REG, virt_to_phys(addr));
|
||||
|
||||
writel(iommu->gcmd | DMA_GCMD_SRTP, iommu->reg + DMAR_GCMD_REG);
|
||||
@@ -948,7 +948,7 @@ static void iommu_set_root_entry(struct intel_iommu *iommu)
|
||||
IOMMU_WAIT_OP(iommu, DMAR_GSTS_REG,
|
||||
readl, (sts & DMA_GSTS_RTPS), sts);
|
||||
|
||||
spin_unlock_irqrestore(&iommu->register_lock, flag);
|
||||
raw_spin_unlock_irqrestore(&iommu->register_lock, flag);
|
||||
}
|
||||
|
||||
static void iommu_flush_write_buffer(struct intel_iommu *iommu)
|
||||
@@ -959,14 +959,14 @@ static void iommu_flush_write_buffer(struct intel_iommu *iommu)
|
||||
if (!rwbf_quirk && !cap_rwbf(iommu->cap))
|
||||
return;
|
||||
|
||||
spin_lock_irqsave(&iommu->register_lock, flag);
|
||||
raw_spin_lock_irqsave(&iommu->register_lock, flag);
|
||||
writel(iommu->gcmd | DMA_GCMD_WBF, iommu->reg + DMAR_GCMD_REG);
|
||||
|
||||
/* Make sure hardware complete it */
|
||||
IOMMU_WAIT_OP(iommu, DMAR_GSTS_REG,
|
||||
readl, (!(val & DMA_GSTS_WBFS)), val);
|
||||
|
||||
spin_unlock_irqrestore(&iommu->register_lock, flag);
|
||||
raw_spin_unlock_irqrestore(&iommu->register_lock, flag);
|
||||
}
|
||||
|
||||
/* return value determine if we need a write buffer flush */
|
||||
@@ -993,14 +993,14 @@ static void __iommu_flush_context(struct intel_iommu *iommu,
|
||||
}
|
||||
val |= DMA_CCMD_ICC;
|
||||
|
||||
spin_lock_irqsave(&iommu->register_lock, flag);
|
||||
raw_spin_lock_irqsave(&iommu->register_lock, flag);
|
||||
dmar_writeq(iommu->reg + DMAR_CCMD_REG, val);
|
||||
|
||||
/* Make sure hardware complete it */
|
||||
IOMMU_WAIT_OP(iommu, DMAR_CCMD_REG,
|
||||
dmar_readq, (!(val & DMA_CCMD_ICC)), val);
|
||||
|
||||
spin_unlock_irqrestore(&iommu->register_lock, flag);
|
||||
raw_spin_unlock_irqrestore(&iommu->register_lock, flag);
|
||||
}
|
||||
|
||||
/* return value determine if we need a write buffer flush */
|
||||
@@ -1039,7 +1039,7 @@ static void __iommu_flush_iotlb(struct intel_iommu *iommu, u16 did,
|
||||
if (cap_write_drain(iommu->cap))
|
||||
val |= DMA_TLB_WRITE_DRAIN;
|
||||
|
||||
spin_lock_irqsave(&iommu->register_lock, flag);
|
||||
raw_spin_lock_irqsave(&iommu->register_lock, flag);
|
||||
/* Note: Only uses first TLB reg currently */
|
||||
if (val_iva)
|
||||
dmar_writeq(iommu->reg + tlb_offset, val_iva);
|
||||
@@ -1049,7 +1049,7 @@ static void __iommu_flush_iotlb(struct intel_iommu *iommu, u16 did,
|
||||
IOMMU_WAIT_OP(iommu, tlb_offset + 8,
|
||||
dmar_readq, (!(val & DMA_TLB_IVT)), val);
|
||||
|
||||
spin_unlock_irqrestore(&iommu->register_lock, flag);
|
||||
raw_spin_unlock_irqrestore(&iommu->register_lock, flag);
|
||||
|
||||
/* check IOTLB invalidation granularity */
|
||||
if (DMA_TLB_IAIG(val) == 0)
|
||||
@@ -1165,7 +1165,7 @@ static void iommu_disable_protect_mem_regions(struct intel_iommu *iommu)
|
||||
u32 pmen;
|
||||
unsigned long flags;
|
||||
|
||||
spin_lock_irqsave(&iommu->register_lock, flags);
|
||||
raw_spin_lock_irqsave(&iommu->register_lock, flags);
|
||||
pmen = readl(iommu->reg + DMAR_PMEN_REG);
|
||||
pmen &= ~DMA_PMEN_EPM;
|
||||
writel(pmen, iommu->reg + DMAR_PMEN_REG);
|
||||
@@ -1174,7 +1174,7 @@ static void iommu_disable_protect_mem_regions(struct intel_iommu *iommu)
|
||||
IOMMU_WAIT_OP(iommu, DMAR_PMEN_REG,
|
||||
readl, !(pmen & DMA_PMEN_PRS), pmen);
|
||||
|
||||
spin_unlock_irqrestore(&iommu->register_lock, flags);
|
||||
raw_spin_unlock_irqrestore(&iommu->register_lock, flags);
|
||||
}
|
||||
|
||||
static int iommu_enable_translation(struct intel_iommu *iommu)
|
||||
@@ -1182,7 +1182,7 @@ static int iommu_enable_translation(struct intel_iommu *iommu)
|
||||
u32 sts;
|
||||
unsigned long flags;
|
||||
|
||||
spin_lock_irqsave(&iommu->register_lock, flags);
|
||||
raw_spin_lock_irqsave(&iommu->register_lock, flags);
|
||||
iommu->gcmd |= DMA_GCMD_TE;
|
||||
writel(iommu->gcmd, iommu->reg + DMAR_GCMD_REG);
|
||||
|
||||
@@ -1190,7 +1190,7 @@ static int iommu_enable_translation(struct intel_iommu *iommu)
|
||||
IOMMU_WAIT_OP(iommu, DMAR_GSTS_REG,
|
||||
readl, (sts & DMA_GSTS_TES), sts);
|
||||
|
||||
spin_unlock_irqrestore(&iommu->register_lock, flags);
|
||||
raw_spin_unlock_irqrestore(&iommu->register_lock, flags);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1199,7 +1199,7 @@ static int iommu_disable_translation(struct intel_iommu *iommu)
|
||||
u32 sts;
|
||||
unsigned long flag;
|
||||
|
||||
spin_lock_irqsave(&iommu->register_lock, flag);
|
||||
raw_spin_lock_irqsave(&iommu->register_lock, flag);
|
||||
iommu->gcmd &= ~DMA_GCMD_TE;
|
||||
writel(iommu->gcmd, iommu->reg + DMAR_GCMD_REG);
|
||||
|
||||
@@ -1207,7 +1207,7 @@ static int iommu_disable_translation(struct intel_iommu *iommu)
|
||||
IOMMU_WAIT_OP(iommu, DMAR_GSTS_REG,
|
||||
readl, (!(sts & DMA_GSTS_TES)), sts);
|
||||
|
||||
spin_unlock_irqrestore(&iommu->register_lock, flag);
|
||||
raw_spin_unlock_irqrestore(&iommu->register_lock, flag);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -3329,7 +3329,7 @@ static int iommu_suspend(void)
|
||||
for_each_active_iommu(iommu, drhd) {
|
||||
iommu_disable_translation(iommu);
|
||||
|
||||
spin_lock_irqsave(&iommu->register_lock, flag);
|
||||
raw_spin_lock_irqsave(&iommu->register_lock, flag);
|
||||
|
||||
iommu->iommu_state[SR_DMAR_FECTL_REG] =
|
||||
readl(iommu->reg + DMAR_FECTL_REG);
|
||||
@@ -3340,7 +3340,7 @@ static int iommu_suspend(void)
|
||||
iommu->iommu_state[SR_DMAR_FEUADDR_REG] =
|
||||
readl(iommu->reg + DMAR_FEUADDR_REG);
|
||||
|
||||
spin_unlock_irqrestore(&iommu->register_lock, flag);
|
||||
raw_spin_unlock_irqrestore(&iommu->register_lock, flag);
|
||||
}
|
||||
return 0;
|
||||
|
||||
@@ -3367,7 +3367,7 @@ static void iommu_resume(void)
|
||||
|
||||
for_each_active_iommu(iommu, drhd) {
|
||||
|
||||
spin_lock_irqsave(&iommu->register_lock, flag);
|
||||
raw_spin_lock_irqsave(&iommu->register_lock, flag);
|
||||
|
||||
writel(iommu->iommu_state[SR_DMAR_FECTL_REG],
|
||||
iommu->reg + DMAR_FECTL_REG);
|
||||
@@ -3378,7 +3378,7 @@ static void iommu_resume(void)
|
||||
writel(iommu->iommu_state[SR_DMAR_FEUADDR_REG],
|
||||
iommu->reg + DMAR_FEUADDR_REG);
|
||||
|
||||
spin_unlock_irqrestore(&iommu->register_lock, flag);
|
||||
raw_spin_unlock_irqrestore(&iommu->register_lock, flag);
|
||||
}
|
||||
|
||||
for_each_active_iommu(iommu, drhd)
|
||||
|
Reference in New Issue
Block a user