ARM: EXYNOS: Fix for stall in case of cpu hotplug or sleep
authorAmit Daniel Kachhap <amit.kachhap@linaro.org>
Thu, 8 Dec 2011 01:07:08 +0000 (10:07 +0900)
committerKukjin Kim <kgene.kim@samsung.com>
Thu, 8 Dec 2011 01:09:31 +0000 (10:09 +0900)
This patch adds remove_irq in place of disable_irq which
is correct equivalent function for setup_irq used in
exynos4_mct_tick_init.

Signed-off-by: Amit Daniel Kachhap <amit.kachhap@linaro.org>
Tested-by: Inderpal Singh <inderpal.singh@linaro.org>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
arch/arm/mach-exynos/mct.c

index 97343df..959f251 100644 (file)
@@ -428,9 +428,13 @@ int __cpuinit local_timer_setup(struct clock_event_device *evt)
 
 void local_timer_stop(struct clock_event_device *evt)
 {
+       unsigned int cpu = smp_processor_id();
        evt->set_mode(CLOCK_EVT_MODE_UNUSED, evt);
        if (mct_int_type == MCT_INT_SPI)
-               disable_irq(evt->irq);
+               if (cpu == 0)
+                       remove_irq(evt->irq, &mct_tick0_event_irq);
+               else
+                       remove_irq(evt->irq, &mct_tick1_event_irq);
        else
                disable_percpu_irq(IRQ_MCT_LOCALTIMER);
 }