powerpc: Fix WARN_ON in decrementer_check_overflow

We use __get_cpu_var() which triggers a false positive warning
in smp_processor_id() thinking interrupts are enabled (at this
point, they are soft-enabled but hard-disabled).
Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
parent 7a768d30
...@@ -118,10 +118,14 @@ static inline notrace void set_soft_enabled(unsigned long enable) ...@@ -118,10 +118,14 @@ static inline notrace void set_soft_enabled(unsigned long enable)
static inline notrace void decrementer_check_overflow(void) static inline notrace void decrementer_check_overflow(void)
{ {
u64 now = get_tb_or_rtc(); 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) if (now >= *next_tb)
set_dec(1); set_dec(1);
preempt_enable();
} }
notrace void arch_local_irq_restore(unsigned long en) notrace void arch_local_irq_restore(unsigned long en)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment