summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-at91
diff options
context:
space:
mode:
authorUwe Kleine-König <Uwe.Kleine-Koenig@digi.com>2008-11-20 11:58:36 +0100
committerUwe Kleine-Koenig <ukl@pengutronix.de>2008-12-12 11:17:08 +0100
commitc4edfced662fa64deeed89c7d8c9f96d86130c19 (patch)
treefe932fbfab71f3be1cb752fb22a50d6b4a22a24a /arch/arm/mach-at91
parent72cca72a6cefe90810366cd2b244a33069b21f86 (diff)
downloadlinux-stable-c4edfced662fa64deeed89c7d8c9f96d86130c19.tar.gz
linux-stable-c4edfced662fa64deeed89c7d8c9f96d86130c19.tar.bz2
linux-stable-c4edfced662fa64deeed89c7d8c9f96d86130c19.zip
at91: warn if irqs are enabled in set_next_event
Thomas claims that irqs are disabled when set_next_event is called. But David and Remy claim they saw irqs being enabled here. As both sides don't seem to have time to investigate here, start with a warning that might trigger if the problem still exists. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Acked-By: David Brownell <dbrownell@users.sourceforge.net> Cc: Bill Gatliff <bgat@billgatliff.com> Acked-By: Remy Bohmer <linux@bohmer.net> Cc: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/arm/mach-at91')
-rw-r--r--arch/arm/mach-at91/at91rm9200_time.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/arm/mach-at91/at91rm9200_time.c b/arch/arm/mach-at91/at91rm9200_time.c
index a72e798a2a40..d140eae53ded 100644
--- a/arch/arm/mach-at91/at91rm9200_time.c
+++ b/arch/arm/mach-at91/at91rm9200_time.c
@@ -141,6 +141,15 @@ clkevt32k_next_event(unsigned long delta, struct clock_event_device *dev)
/* Use "raw" primitives so we behave correctly on RT kernels. */
raw_local_irq_save(flags);
+ /*
+ * According to Thomas Gleixner irqs are already disabled here. Simply
+ * removing raw_local_irq_save above (and the matching
+ * raw_local_irq_restore) was not accepted. See
+ * http://thread.gmane.org/gmane.linux.ports.arm.kernel/41174
+ * So for now (2008-11-20) just warn once if irqs were not disabled ...
+ */
+ WARN_ON_ONCE(!raw_irqs_disabled_flags(flags));
+
/* The alarm IRQ uses absolute time (now+delta), not the relative
* time (delta) in our calling convention. Like all clockevents
* using such "match" hardware, we have a race to defend against.