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