2008-12-09 03:19:19

by Hiroshi Shimamoto

[permalink] [raw]
Subject: [PATCH] x86: kill #ifdef for exit_idle()

From: Hiroshi Shimamoto <[email protected]>

Impact: cleanup

Introduce helper incline function in arch/x86/include/asm/idle.h
to remove #ifdefs around exit_idle().

Signed-off-by: Hiroshi Shimamoto <[email protected]>
---
arch/x86/include/asm/idle.h | 5 +++++
arch/x86/kernel/apic.c | 6 ------
arch/x86/kernel/io_apic.c | 3 +--
3 files changed, 6 insertions(+), 8 deletions(-)

diff --git a/arch/x86/include/asm/idle.h b/arch/x86/include/asm/idle.h
index 44c89c3..38d8737 100644
--- a/arch/x86/include/asm/idle.h
+++ b/arch/x86/include/asm/idle.h
@@ -8,8 +8,13 @@ struct notifier_block;
void idle_notifier_register(struct notifier_block *n);
void idle_notifier_unregister(struct notifier_block *n);

+#ifdef CONFIG_X86_64
void enter_idle(void);
void exit_idle(void);
+#else /* !CONFIG_X86_64 */
+static inline void enter_idle(void) { }
+static inline void exit_idle(void) { }
+#endif /* CONFIG_X86_64 */

void c1e_remove_cpu(int cpu);

diff --git a/arch/x86/kernel/apic.c b/arch/x86/kernel/apic.c
index 02d64c9..91c4257 100644
--- a/arch/x86/kernel/apic.c
+++ b/arch/x86/kernel/apic.c
@@ -809,9 +809,7 @@ void smp_apic_timer_interrupt(struct pt_regs *regs)
* Besides, if we don't timer interrupts ignore the global
* interrupt lock, which is the WrongThing (tm) to do.
*/
-#ifdef CONFIG_X86_64
exit_idle();
-#endif
irq_enter();
local_apic_timer_interrupt();
irq_exit();
@@ -1670,9 +1668,7 @@ void smp_spurious_interrupt(struct pt_regs *regs)
{
u32 v;

-#ifdef CONFIG_X86_64
exit_idle();
-#endif
irq_enter();
/*
* Check if this really is a spurious interrupt and ACK it
@@ -1701,9 +1697,7 @@ void smp_error_interrupt(struct pt_regs *regs)
{
u32 v, v1;

-#ifdef CONFIG_X86_64
exit_idle();
-#endif
irq_enter();
/* First tickle the hardware, only then report what went on. -- REW */
v = apic_read(APIC_ESR);
diff --git a/arch/x86/kernel/io_apic.c b/arch/x86/kernel/io_apic.c
index a1a2e07..23f3141 100644
--- a/arch/x86/kernel/io_apic.c
+++ b/arch/x86/kernel/io_apic.c
@@ -2303,10 +2303,9 @@ static void set_ir_ioapic_affinity_irq(unsigned int irq, cpumask_t mask)
asmlinkage void smp_irq_move_cleanup_interrupt(void)
{
unsigned vector, me;
+
ack_APIC_irq();
-#ifdef CONFIG_X86_64
exit_idle();
-#endif
irq_enter();

me = smp_processor_id();
--
1.6.0.4


2008-12-12 11:05:01

by Ingo Molnar

[permalink] [raw]
Subject: Re: [PATCH] x86: kill #ifdef for exit_idle()


* Hiroshi Shimamoto <[email protected]> wrote:

> From: Hiroshi Shimamoto <[email protected]>
>
> Impact: cleanup
>
> Introduce helper incline function in arch/x86/include/asm/idle.h
> to remove #ifdefs around exit_idle().
>
> Signed-off-by: Hiroshi Shimamoto <[email protected]>
> ---
> arch/x86/include/asm/idle.h | 5 +++++
> arch/x86/kernel/apic.c | 6 ------
> arch/x86/kernel/io_apic.c | 3 +--
> 3 files changed, 6 insertions(+), 8 deletions(-)

applied to tip/x86/idle, thanks!

Ingo