summaryrefslogtreecommitdiffstats
path: root/sys/i386
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>2002-07-17 21:47:05 +0000
committerpeter <peter@FreeBSD.org>2002-07-17 21:47:05 +0000
commitdecf7baa13bdaabdf7e3882d040cd75ca13dadae (patch)
tree78ae00216abacfb3a39bc050acbfffef8387ca13 /sys/i386
parent0e4b89607d67b97b6a546982fb34321f8e52aa87 (diff)
downloadFreeBSD-src-decf7baa13bdaabdf7e3882d040cd75ca13dadae.zip
FreeBSD-src-decf7baa13bdaabdf7e3882d040cd75ca13dadae.tar.gz
Avoid trying to set PG_G on the first 4MB when we set up the 4MB page.
This solves the SMP panic for at least one system. I'd still like to know why my xeon works though. Tested by: bmilekic
Diffstat (limited to 'sys/i386')
-rw-r--r--sys/i386/i386/pmap.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/i386/i386/pmap.c b/sys/i386/i386/pmap.c
index a52736b..9a2f359 100644
--- a/sys/i386/i386/pmap.c
+++ b/sys/i386/i386/pmap.c
@@ -443,6 +443,12 @@ pmap_set_opt(void)
if (pgeflag) {
/* Turn on PG_G for text, data, bss pages. */
va = (vm_offset_t)btext;
+#ifndef DISABLE_PSE
+ if (pseflag && (cpu_feature & CPUID_PSE)) {
+ if (va < KERNBASE + (1 << PDRSHIFT))
+ va = KERNBASE + (1 << PDRSHIFT);
+ }
+#endif
endva = KERNBASE + KERNend;
while (va < endva) {
pte = vtopte(va);
OpenPOWER on IntegriCloud