summaryrefslogtreecommitdiffstats
path: root/sys/i386
diff options
context:
space:
mode:
authorroyger <royger@FreeBSD.org>2017-02-24 10:20:13 +0000
committerroyger <royger@FreeBSD.org>2017-02-24 10:20:13 +0000
commit51adcc4a230669adb28629d389347b1a4da040e1 (patch)
tree34d907566c5ed461af0a21c9fe72a192eb5e916b /sys/i386
parentab9578f7175d93afabb4399b01039d613d26bdb8 (diff)
downloadFreeBSD-src-51adcc4a230669adb28629d389347b1a4da040e1.zip
FreeBSD-src-51adcc4a230669adb28629d389347b1a4da040e1.tar.gz
MFC r313871
x86: fix MTRR initialization if EARLY_AP_STARTUP is used Sponsored by: Citrix Systems R&D
Diffstat (limited to 'sys/i386')
-rw-r--r--sys/i386/i386/i686_mem.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/sys/i386/i386/i686_mem.c b/sys/i386/i386/i686_mem.c
index a7b8166..03e5b17 100644
--- a/sys/i386/i386/i686_mem.c
+++ b/sys/i386/i386/i686_mem.c
@@ -588,6 +588,10 @@ i686_mrinit(struct mem_range_softc *sc)
u_int regs[4];
int i, nmdesc = 0, pabits;
+ if (sc->mr_desc != NULL)
+ /* Already initialized. */
+ return;
+
mtrrcap = rdmsr(MSR_MTRRcap);
mtrrdef = rdmsr(MSR_MTRRdefType);
@@ -716,5 +720,6 @@ i686_mem_drvinit(void *unused)
return;
}
mem_range_softc.mr_op = &i686_mrops;
+ i686_mrinit(&mem_range_softc);
}
-SYSINIT(i686memdev, SI_SUB_DRIVERS, SI_ORDER_FIRST, i686_mem_drvinit, NULL);
+SYSINIT(i686memdev, SI_SUB_CPU, SI_ORDER_ANY, i686_mem_drvinit, NULL);
OpenPOWER on IntegriCloud