Commit 8ee37e0f authored by Qi Liu's avatar Qi Liu Committed by Will Deacon
Browse files

drivers/perf: Replace spin_lock_irqsave to spin_lock



There is no need to do spin_lock_irqsave in context of hard IRQ, so
replace them with spin_lock.

Signed-off-by: default avatarQi Liu <liuqi115@huawei.com>
Link: https://lore.kernel.org/r/1612863742-1551-1-git-send-email-liuqi115@huawei.com


Signed-off-by: default avatarWill Deacon <will@kernel.org>
parent 750d43b4
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -1026,12 +1026,11 @@ static void pmu_event_set_period(struct perf_event *event)

static irqreturn_t pmu_handle_irq(int irq_num, void *dev)
{
	unsigned long flags;
	struct cci_pmu *cci_pmu = dev;
	struct cci_pmu_hw_events *events = &cci_pmu->hw_events;
	int idx, handled = IRQ_NONE;

	raw_spin_lock_irqsave(&events->pmu_lock, flags);
	raw_spin_lock(&events->pmu_lock);

	/* Disable the PMU while we walk through the counters */
	__cci_pmu_disable(cci_pmu);
@@ -1061,7 +1060,7 @@ static irqreturn_t pmu_handle_irq(int irq_num, void *dev)

	/* Enable the PMU and sync possibly overflowed counters */
	__cci_pmu_enable_sync(cci_pmu);
	raw_spin_unlock_irqrestore(&events->pmu_lock, flags);
	raw_spin_unlock(&events->pmu_lock);

	return IRQ_RETVAL(handled);
}
+2 −3
Original line number Diff line number Diff line
@@ -1234,10 +1234,9 @@ static irqreturn_t xgene_pmu_isr(int irq, void *dev_id)
	u32 intr_mcu, intr_mcb, intr_l3c, intr_iob;
	struct xgene_pmu_dev_ctx *ctx;
	struct xgene_pmu *xgene_pmu = dev_id;
	unsigned long flags;
	u32 val;

	raw_spin_lock_irqsave(&xgene_pmu->lock, flags);
	raw_spin_lock(&xgene_pmu->lock);

	/* Get Interrupt PMU source */
	val = readl(xgene_pmu->pcppmu_csr + PCPPMU_INTSTATUS_REG);
@@ -1273,7 +1272,7 @@ static irqreturn_t xgene_pmu_isr(int irq, void *dev_id)
		}
	}

	raw_spin_unlock_irqrestore(&xgene_pmu->lock, flags);
	raw_spin_unlock(&xgene_pmu->lock);

	return IRQ_HANDLED;
}