From 7a991d488dfd269a3a221dbaec731cf0281ba52d Mon Sep 17 00:00:00 2001 From: Benjamin Herrenschmidt Date: Wed, 8 Feb 2012 19:34:13 +0000 Subject: [PATCH] --- yaml --- r: 287642 b: refs/heads/master c: 6fe5f5f3ffade25aa94526010f219df3be521bf7 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/arch/powerpc/kernel/irq.c | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 8115d7765a12..5b621e935ec6 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 7a768d30caa30e66ba89659f1845cc35b1bfc715 +refs/heads/master: 6fe5f5f3ffade25aa94526010f219df3be521bf7 diff --git a/trunk/arch/powerpc/kernel/irq.c b/trunk/arch/powerpc/kernel/irq.c index 701d4aceb4f4..01e2877e8e04 100644 --- a/trunk/arch/powerpc/kernel/irq.c +++ b/trunk/arch/powerpc/kernel/irq.c @@ -118,10 +118,14 @@ static inline notrace void set_soft_enabled(unsigned long enable) static inline notrace void decrementer_check_overflow(void) { u64 now = get_tb_or_rtc(); - u64 *next_tb = &__get_cpu_var(decrementers_next_tb); + u64 *next_tb; + + preempt_disable(); + next_tb = &__get_cpu_var(decrementers_next_tb); if (now >= *next_tb) set_dec(1); + preempt_enable(); } notrace void arch_local_irq_restore(unsigned long en)