diff options
author | Warner Losh <imp@FreeBSD.org> | 2021-09-29 16:19:51 +0000 |
---|---|---|
committer | Warner Losh <imp@FreeBSD.org> | 2021-09-29 16:35:21 +0000 |
commit | 0cfc8b10edd78c9e2738e82544fe4c4db401aea1 (patch) | |
tree | b1e23339cdc52fbf91f494a56a27f5e24acba3de | |
parent | 9e1dc7bec331b4d120d4b0687cfd54692e4fddcb (diff) | |
download | src-0cfc8b10edd78c9e2738e82544fe4c4db401aea1.tar.gz src-0cfc8b10edd78c9e2738e82544fe4c4db401aea1.zip |
f00f: We don't need giant to create IDT for workaround.
We don't need to assert we have Giant here. All machines that require
the F00F workaround are UP and interrupts are disabled. Since we are
single threaded, it's safe to allocate the IDT area with pmap_trm_alloc,
interact with the current idt table and replace the IDT table without
any Giant locking.
Sponsored by: Netflix
Reviewed by: kib, markj
Differential Revision: https://reviews.freebsd.org/D31839
-rw-r--r-- | sys/i386/i386/machdep.c | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/sys/i386/i386/machdep.c b/sys/i386/i386/machdep.c index 1366939cda6e..942ff8c2ada8 100644 --- a/sys/i386/i386/machdep.c +++ b/sys/i386/i386/machdep.c @@ -2719,8 +2719,6 @@ f00f_hack(void *unused) if (!has_f00f_bug) return; - GIANT_REQUIRED; - printf("Intel Pentium detected, installing workaround for F00F bug\n"); tmp = (vm_offset_t)pmap_trm_alloc(PAGE_SIZE * 3, M_NOWAIT | M_ZERO); |