diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2013-01-31 22:17:10 +0100 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2013-01-31 22:17:10 +0100 |
commit | a9037430c6c784165a940a90bcd29f886834c8e7 (patch) | |
tree | 4b186e0a761e93a6c6712053d444b566c0d25338 /arch/powerpc/kernel/time.c | |
parent | x86/time/rtc: Don't print extended CMOS year when reading RTC (diff) | |
parent | clockevents: Add generic timer broadcast function (diff) | |
download | linux-a9037430c6c784165a940a90bcd29f886834c8e7.tar.xz linux-a9037430c6c784165a940a90bcd29f886834c8e7.zip |
Merge branch 'timers/for-arm' into timers/core
Diffstat (limited to 'arch/powerpc/kernel/time.c')
-rw-r--r-- | arch/powerpc/kernel/time.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c index 6f6b1cccc916..127361e093f4 100644 --- a/arch/powerpc/kernel/time.c +++ b/arch/powerpc/kernel/time.c @@ -494,10 +494,15 @@ void timer_interrupt(struct pt_regs * regs) set_dec(DECREMENTER_MAX); /* Some implementations of hotplug will get timer interrupts while - * offline, just ignore these + * offline, just ignore these and we also need to set + * decrementers_next_tb as MAX to make sure __check_irq_replay + * don't replay timer interrupt when return, otherwise we'll trap + * here infinitely :( */ - if (!cpu_online(smp_processor_id())) + if (!cpu_online(smp_processor_id())) { + *next_tb = ~(u64)0; return; + } /* Conditionally hard-enable interrupts now that the DEC has been * bumped to its maximum value |