blob: 56bd392bfb84c6acc61c48dbc786cb75eb0a5021 [file] [log] [blame]
From 779a264d514f28743aca359f1fa8f7a3d0929609 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>
arch/arm/oprofile/op_model_xscale.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
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.1.1