Date: Tue, 30 Sep 2003 17:45:42 -0700 (PDT) From: Peter Wemm <peter@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 38935 for review Message-ID: <200310010045.h910jg9N041891@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=38935 Change 38935 by peter@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; }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200310010045.h910jg9N041891>