diff --git a/arch/arm64/kernel/perf_event.c b/arch/arm64/kernel/perf_event.c index ec74a7c7190d2de8c6b17a09322031d6ac6e1e25..c6fe36f5a9f5506fa55fedfbc9b6b0acd7e0eefc 100644 --- a/arch/arm64/kernel/perf_event.c +++ b/arch/arm64/kernel/perf_event.c @@ -895,7 +895,8 @@ static irqreturn_t armv8pmu_handle_irq(struct arm_pmu *cpu_pmu) * platforms that can have the PMU interrupts raised as an NMI, this * will not work. */ - irq_work_run(); + if (!in_nmi()) + irq_work_run(); return IRQ_HANDLED; }