* [PATCH] NUMA-Q relocate early ioremap
@ 2002-08-05 23:48 Martin J. Bligh
2002-08-13 16:12 ` Martin J. Bligh
0 siblings, 1 reply; 2+ messages in thread
From: Martin J. Bligh @ 2002-08-05 23:48 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel
This moves the early ioremap call to after cpu_online_map is initialized.
Note everything is wrapped in clustered_apic_mode, so should be safe.
Tested on NUMA-Q and std 2-way SMP through LTP.
Please apply,
Martin.
diff -Nur linux-2.5.25-vanilla/arch/i386/kernel/smpboot.c linux-2.5.25-patched/arch/i386/kernel/smpboot.c
--- virgin-2.5.25/arch/i386/kernel/smpboot.c Fri Jul 5 16:42:23 2002
+++ linux-2.5.25-ioremap/arch/i386/kernel/smpboot.c Fri Jul 12 15:55:20 2002
@@ -968,16 +968,6 @@
{
int apicid, cpu, bit;
- if (clustered_apic_mode && (numnodes > 1)) {
- printk("Remapping cross-quad port I/O for %d quads\n",
- numnodes);
- printk("xquad_portio vaddr 0x%08lx, len %08lx\n",
- (u_long) xquad_portio,
- (u_long) numnodes * XQUAD_PORTIO_LEN);
- xquad_portio = ioremap (XQUAD_PORTIO_BASE,
- numnodes * XQUAD_PORTIO_LEN);
- }
-
#ifdef CONFIG_MTRR
/* Must be done before other processors booted */
mtrr_init_boot_cpu ();
@@ -1075,6 +1065,16 @@
if (GET_APIC_ID(apic_read(APIC_ID)) != boot_cpu_physical_apicid)
BUG();
+
+ if (clustered_apic_mode && (numnodes > 1)) {
+ printk("Remapping cross-quad port I/O for %d quads\n",
+ numnodes);
+ printk("xquad_portio vaddr 0x%08lx, len %08lx\n",
+ (u_long) xquad_portio,
+ (u_long) numnodes * XQUAD_PORTIO_LEN);
+ xquad_portio = ioremap (XQUAD_PORTIO_BASE,
+ numnodes * XQUAD_PORTIO_LEN);
+ }
/*
* Scan the CPU present map and fire up the other CPUs via do_boot_cpu
^ permalink raw reply [flat|nested] 2+ messages in thread* [PATCH] NUMA-Q relocate early ioremap
2002-08-05 23:48 [PATCH] NUMA-Q relocate early ioremap Martin J. Bligh
@ 2002-08-13 16:12 ` Martin J. Bligh
0 siblings, 0 replies; 2+ messages in thread
From: Martin J. Bligh @ 2002-08-13 16:12 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel
This moves the early ioremap call to after cpu_online_map is initialized.
Note everything is wrapped in clustered_apic_mode, so should be safe.
Tested on NUMA-Q and std 2-way SMP through LTP. Says it's against
2.5.25, but applies to and works on 2.5.31.
Please apply,
Martin.
diff -Nur linux-2.5.25-vanilla/arch/i386/kernel/smpboot.c linux-2.5.25-patched/arch/i386/kernel/smpboot.c
--- virgin-2.5.25/arch/i386/kernel/smpboot.c Fri Jul 5 16:42:23 2002
+++ linux-2.5.25-ioremap/arch/i386/kernel/smpboot.c Fri Jul 12 15:55:20 2002
@@ -968,16 +968,6 @@
{
int apicid, cpu, bit;
- if (clustered_apic_mode && (numnodes > 1)) {
- printk("Remapping cross-quad port I/O for %d quads\n",
- numnodes);
- printk("xquad_portio vaddr 0x%08lx, len %08lx\n",
- (u_long) xquad_portio,
- (u_long) numnodes * XQUAD_PORTIO_LEN);
- xquad_portio = ioremap (XQUAD_PORTIO_BASE,
- numnodes * XQUAD_PORTIO_LEN);
- }
-
#ifdef CONFIG_MTRR
/* Must be done before other processors booted */
mtrr_init_boot_cpu ();
@@ -1075,6 +1065,16 @@
if (GET_APIC_ID(apic_read(APIC_ID)) != boot_cpu_physical_apicid)
BUG();
+
+ if (clustered_apic_mode && (numnodes > 1)) {
+ printk("Remapping cross-quad port I/O for %d quads\n",
+ numnodes);
+ printk("xquad_portio vaddr 0x%08lx, len %08lx\n",
+ (u_long) xquad_portio,
+ (u_long) numnodes * XQUAD_PORTIO_LEN);
+ xquad_portio = ioremap (XQUAD_PORTIO_BASE,
+ numnodes * XQUAD_PORTIO_LEN);
+ }
/*
* Scan the CPU present map and fire up the other CPUs via do_boot_cpu
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2002-08-13 16:11 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-08-05 23:48 [PATCH] NUMA-Q relocate early ioremap Martin J. Bligh
2002-08-13 16:12 ` Martin J. Bligh
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox