diff options
author | tegge <tegge@FreeBSD.org> | 1998-03-07 20:16:49 +0000 |
---|---|---|
committer | tegge <tegge@FreeBSD.org> | 1998-03-07 20:16:49 +0000 |
commit | 8644d41f2db3203f8a67363f52bf7155fe15878a (patch) | |
tree | aa2cc21c7ee8d42ebca2c4120ca19bfa71855931 /sys/kern/subr_smp.c | |
parent | 1fd7c195a523382100dc2d4c50a8108b6fb9cc79 (diff) | |
download | FreeBSD-src-8644d41f2db3203f8a67363f52bf7155fe15878a.zip FreeBSD-src-8644d41f2db3203f8a67363f52bf7155fe15878a.tar.gz |
The APs now reload the interrupt descriptor table pointer after
f00f_hack has run.
Use the global r_idt descriptor in f00f_hack when in SMP mode,
so the APs find the relocated interrupt descriptor table.
Submitted by: Partially from David A Adkins <adkin003@tc.umn.edu>
Diffstat (limited to 'sys/kern/subr_smp.c')
-rw-r--r-- | sys/kern/subr_smp.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/sys/kern/subr_smp.c b/sys/kern/subr_smp.c index d5bfeeb..aa6adb9 100644 --- a/sys/kern/subr_smp.c +++ b/sys/kern/subr_smp.c @@ -22,11 +22,12 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: mp_machdep.c,v 1.68 1998/03/03 20:55:25 tegge Exp $ + * $Id: mp_machdep.c,v 1.69 1998/03/03 22:56:24 tegge Exp $ */ #include "opt_smp.h" #include "opt_vm86.h" +#include "opt_cpu.h" #ifdef SMP #include <machine/smptests.h> @@ -2056,6 +2057,10 @@ ap_init() smp_cpus++; +#if defined(I586_CPU) && !defined(NO_F00F_HACK) + lidt(&r_idt); +#endif + /* Build our map of 'other' CPUs. */ other_cpus = all_cpus & ~(1 << cpuid); |