PERFORCE change 38935 for review
Peter Wemm
peter at FreeBSD.org
Tue Sep 30 17:45:44 PDT 2003
http://perforce.freebsd.org/chv.cgi?CH=38935
Change 38935 by peter at peter_hammer on 2003/09/30 17:44:55
bioswarmvec is a 32 bit int (actually 2x16 bits next to each
other). XXX alignment checking will break here.
Affected files ...
.. //depot/projects/hammer/sys/amd64/amd64/mp_machdep.c#13 edit
Differences ...
==== //depot/projects/hammer/sys/amd64/amd64/mp_machdep.c#13 (text+ko) ====
@@ -402,9 +402,8 @@
static int
start_all_aps(u_int boot_addr)
{
-#ifdef SMP_ME_HARDER
u_char mpbiosreason;
- u_long mpbioswarmvec;
+ u_int32_t mpbioswarmvec;
struct pcpu *pc;
char *stack;
uintptr_t kptbase;
@@ -416,7 +415,7 @@
install_ap_tramp(boot_addr);
/* save the current value of the warm-start vector */
- mpbioswarmvec = *((u_long *) WARMBOOT_OFF);
+ mpbioswarmvec = *((u_int32_t *) WARMBOOT_OFF);
outb(CMOS_REG, BIOS_RESET);
mpbiosreason = inb(CMOS_DATA);
@@ -475,7 +474,7 @@
PCPU_SET(other_cpus, all_cpus & ~PCPU_GET(cpumask));
/* restore the warmstart vector */
- *(u_long *) WARMBOOT_OFF = mpbioswarmvec;
+ *(u_int32_t *) WARMBOOT_OFF = mpbioswarmvec;
outb(CMOS_REG, BIOS_RESET);
outb(CMOS_DATA, mpbiosreason);
@@ -497,7 +496,6 @@
PTD[i] = 0;
invltlb();
-#endif
/* number of APs actually started */
return mp_naps;
}
More information about the p4-projects
mailing list