summaryrefslogtreecommitdiffstats
path: root/arm-Mark-XScale-performance-monitor-unit-PMU-interru.patch
blob: e3785c2c22d7bea84bca33de315c8c06923c89d1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
From 94a0a4602714e8f6acdd90a5c8241f27f2623a81 Mon Sep 17 00:00:00 2001
From: Kevin Hilman <khilman@mvista.com>
Date: Fri, 3 Jul 2009 08:44:45 -0500
Subject: [PATCH] arm: Mark XScale performance monitor unit (PMU) interrupt IRQF_NODELAY

commit 9135967b2d67565ab6f6d36721ae0b0fbe8b84a0 in tip.

PMU results are not useful if that ISR is run as thread.

Signed-off-by: Kevin Hilman <khilman@mvista.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
---
 arch/arm/oprofile/op_model_xscale.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/arch/arm/oprofile/op_model_xscale.c b/arch/arm/oprofile/op_model_xscale.c
index 1d34a02..1fa40e8 100644
--- a/arch/arm/oprofile/op_model_xscale.c
+++ b/arch/arm/oprofile/op_model_xscale.c
@@ -376,6 +376,7 @@ static int xscale_pmu_start(void)
 {
 	int ret;
 	u32 pmnc;
+	unsigned long irq_flags = IRQF_DISABLED | IRQF_NODELAY;
 
 	pmu_irqs = reserve_pmu();
 	if (IS_ERR(pmu_irqs))
@@ -384,7 +385,7 @@ static int xscale_pmu_start(void)
 	pmnc = read_pmnc();
 
 	ret = request_irq(pmu_irqs->irqs[0], xscale_pmu_interrupt,
-			  IRQF_DISABLED, "XScale PMU", (void *)results);
+			  irq_flags, "XScale PMU", (void *)results);
 
 	if (ret < 0) {
 		printk(KERN_ERR "oprofile: unable to request IRQ%d for XScale PMU\n",
-- 
1.7.0.4