[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <12059477421707-git-send-email-gcosta@redhat.com>
Date: Wed, 19 Mar 2008 14:25:32 -0300
From: Glauber de Oliveira Costa <gcosta@...hat.com>
To: linux-kernel@...r.kernel.org
Cc: akpm@...ux-foundation.org, tglx@...utronix.de, mingo@...e.hu,
ak@...e.de, Glauber Costa <gcosta@...hat.com>
Subject: [PATCH 37/79] [PATCH] include smpboot_hooks.h in smpboot_64.c
From: Glauber Costa <gcosta@...hat.com>
We do it and also fix conflicts, which makes x86_64 automatically
closer to i386
Signed-off-by: Glauber Costa <gcosta@...hat.com>
---
arch/x86/kernel/smpboot_64.c | 29 +++--------------------------
1 files changed, 3 insertions(+), 26 deletions(-)
diff --git a/arch/x86/kernel/smpboot_64.c b/arch/x86/kernel/smpboot_64.c
index c6c993f..b9384b3 100644
--- a/arch/x86/kernel/smpboot_64.c
+++ b/arch/x86/kernel/smpboot_64.c
@@ -61,6 +61,7 @@
#include <asm/numa.h>
#include <mach_wakecpu.h>
+#include <smpboot_hooks.h>
/* Set when the idlers are all forked */
int smp_threads_ready;
@@ -517,14 +518,7 @@ do_rest:
Dprintk("Setting warm reset code and vector.\n");
- CMOS_WRITE(0xa, 0xf);
- local_flush_tlb();
- Dprintk("1.\n");
- *((volatile unsigned short *) phys_to_virt(0x469)) = start_rip >> 4;
- Dprintk("2.\n");
- *((volatile unsigned short *) phys_to_virt(0x467)) = start_rip & 0xf;
- Dprintk("3.\n");
-
+ smpboot_setup_warm_reset_vector(start_rip);
/*
* Be paranoid about clearing APIC errors.
*/
@@ -594,23 +588,6 @@ cycles_t cacheflush_time;
unsigned long cache_decay_ticks;
/*
- * Cleanup possible dangling ends...
- */
-static __cpuinit void smp_cleanup_boot(void)
-{
- /*
- * Paranoid: Set warm reset code and vector here back
- * to default values.
- */
- CMOS_WRITE(0, 0xf);
-
- /*
- * Reset trampoline flag
- */
- *((volatile int *) phys_to_virt(0x467)) = 0;
-}
-
-/*
* Fall back to non SMP mode after errors.
*
* RED-PEN audit/test this more. I bet there is more state messed up here.
@@ -827,7 +804,7 @@ extern void smp_checks(void);
*/
void __init native_smp_cpus_done(unsigned int max_cpus)
{
- smp_cleanup_boot();
+ smpboot_restore_warm_reset_vector();
Dprintk("Boot done.\n");
--
1.5.0.6
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists