From d061daa0e3abdddc28e21a37c8ac4536dedbf239 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 3 Jul 2006 02:18:48 +0200 Subject: [PATCH] genirq: ARM dyntick cleanup Linus: "The hacks in kernel/irq/handle.c are really horrid. REALLY horrid." They are indeed. Move the dyntick quirks to ARM where they belong. Signed-off-by: Thomas Gleixner Signed-off-by: Linus Torvalds --- include/asm-arm/hw_irq.h | 11 +++++++++++ include/asm-arm/mach/time.h | 1 + 2 files changed, 12 insertions(+) (limited to 'include/asm-arm') diff --git a/include/asm-arm/hw_irq.h b/include/asm-arm/hw_irq.h index f1a08a50060..275b574fd1a 100644 --- a/include/asm-arm/hw_irq.h +++ b/include/asm-arm/hw_irq.h @@ -6,4 +6,15 @@ #include +#if defined(CONFIG_NO_IDLE_HZ) +# include +# define handle_dynamic_tick(action) \ + if (!(action->flags & SA_TIMER) && system_timer->dyn_tick) { \ + write_seqlock(&xtime_lock); \ + if (system_timer->dyn_tick->state & DYN_TICK_ENABLED) \ + system_timer->dyn_tick->handler(irq, 0, regs); \ + write_sequnlock(&xtime_lock); \ + } +#endif + #endif diff --git a/include/asm-arm/mach/time.h b/include/asm-arm/mach/time.h index 9f28073559e..dee0bc336fe 100644 --- a/include/asm-arm/mach/time.h +++ b/include/asm-arm/mach/time.h @@ -69,6 +69,7 @@ extern void timer_tick(struct pt_regs *); /* * Kernel time keeping support. */ +struct timespec; extern int (*set_rtc)(void); extern void save_time_delta(struct timespec *delta, struct timespec *rtc); extern void restore_time_delta(struct timespec *delta, struct timespec *rtc); -- cgit v1.2.3