diff options
-rw-r--r-- | sys/i386/i386/i686_mem.c | 17 | ||||
-rw-r--r-- | sys/i386/i386/k6_mem.c | 14 |
2 files changed, 18 insertions, 13 deletions
diff --git a/sys/i386/i386/i686_mem.c b/sys/i386/i386/i686_mem.c index 42a73ac..f1240b6 100644 --- a/sys/i386/i386/i686_mem.c +++ b/sys/i386/i386/i686_mem.c @@ -653,12 +653,15 @@ static void i686_mem_drvinit(void *unused) { - /* Try for i686 MTRRs */ - if (!mtrrs_disabled && (cpu_feature & CPUID_MTRR) && - ((cpu_id & 0xf00) == 0x600 || (cpu_id & 0xf00) == 0xf00) && - ((strcmp(cpu_vendor, "GenuineIntel") == 0) || - (strcmp(cpu_vendor, "AuthenticAMD") == 0))) { - mem_range_softc.mr_op = &i686_mrops; - } + if (mtrrs_disabled) + return; + if (!(cpu_feature & CPUID_MTRR)) + return; + if ((cpu_id & 0xf00) != 0x600 && (cpu_id & 0xf00) != 0xf00) + return; + if ((strcmp(cpu_vendor, "GenuineIntel") != 0) && + (strcmp(cpu_vendor, "AuthenticAMD") != 0)) + return; + mem_range_softc.mr_op = &i686_mrops; } SYSINIT(i686memdev, SI_SUB_DRIVERS, SI_ORDER_FIRST, i686_mem_drvinit, NULL); diff --git a/sys/i386/i386/k6_mem.c b/sys/i386/i386/k6_mem.c index fcbd044..80ae52a 100644 --- a/sys/i386/i386/k6_mem.c +++ b/sys/i386/i386/k6_mem.c @@ -175,11 +175,13 @@ static void k6_mem_drvinit(void *unused) { - if (!strcmp(cpu_vendor, "AuthenticAMD") && - (cpu_id & 0xf00) == 0x500 && - ((cpu_id & 0xf0) > 0x80 || - ((cpu_id & 0xf0) == 0x80 && - (cpu_id & 0xf) > 0x7))) - mem_range_softc.mr_op = &k6_mrops; + if (strcmp(cpu_vendor, "AuthenticAMD") != 0) + return; + if ((cpu_id & 0xf00) != 0x500) + return; + if ((cpu_id & 0xf0) < 0x80 || + (cpu_id & 0xf0) == 0x80 && (cpu_id & 0xf) <= 0x7) + return; + mem_range_softc.mr_op = &k6_mrops; } SYSINIT(k6memdev, SI_SUB_DRIVERS, SI_ORDER_FIRST, k6_mem_drvinit, NULL); |