[tip:x86/apic] x86, apic: Use apic noop driver

From: tip-bot for Cyrill Gorcunov
Date: Wed Oct 14 2009 - 04:18:49 EST


Commit-ID: a933c61829509eb27083146dda392132baa0969a
Gitweb: http://git.kernel.org/tip/a933c61829509eb27083146dda392132baa0969a
Author: Cyrill Gorcunov <gorcunov@xxxxxxxxxx>
AuthorDate: Wed, 14 Oct 2009 00:07:04 +0400
Committer: Ingo Molnar <mingo@xxxxxxx>
CommitDate: Wed, 14 Oct 2009 09:17:00 +0200

x86, apic: Use apic noop driver

In case if apic were disabled we may use the whole apic NOOP driver
instead of sparse poking the some functions in apic driver.

Also NOOP would catch any inappropriate apic operation calls (not
just read/write).

Signed-off-by: Cyrill Gorcunov <gorcunov@xxxxxxxxxx>
Cc: yinghai@xxxxxxxxxx
Cc: macro@xxxxxxxxxxxxxx
LKML-Reference: <20091013201022.747817361@xxxxxxxxxx>
Signed-off-by: Ingo Molnar <mingo@xxxxxxx>
---
arch/x86/kernel/apic/apic.c | 22 +++-------------------
1 files changed, 3 insertions(+), 19 deletions(-)

diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c
index 894aa97..61a5628 100644
--- a/arch/x86/kernel/apic/apic.c
+++ b/arch/x86/kernel/apic/apic.c
@@ -241,28 +241,12 @@ static int modern_apic(void)
}

/*
- * bare function to substitute write operation
- * and it's _that_ fast :)
- */
-static void native_apic_write_dummy(u32 reg, u32 v)
-{
- WARN_ON_ONCE((cpu_has_apic || !disable_apic));
-}
-
-static u32 native_apic_read_dummy(u32 reg)
-{
- WARN_ON_ONCE((cpu_has_apic && !disable_apic));
- return 0;
-}
-
-/*
- * right after this call apic->write/read doesn't do anything
- * note that there is no restore operation it works one way
+ * right after this call apic become NOOP driven
+ * so apic->write/read doesn't do anything
*/
void apic_disable(void)
{
- apic->read = native_apic_read_dummy;
- apic->write = native_apic_write_dummy;
+ apic = &apic_noop;
}

void native_apic_wait_icr_idle(void)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/