summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/arch/i386/i386/machdep.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/sys/arch/i386/i386/machdep.c b/sys/arch/i386/i386/machdep.c
index 49962050f41..39b623bf62a 100644
--- a/sys/arch/i386/i386/machdep.c
+++ b/sys/arch/i386/i386/machdep.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: machdep.c,v 1.407 2007/09/07 15:00:19 art Exp $ */
+/* $OpenBSD: machdep.c,v 1.408 2007/09/30 17:50:20 gwk Exp $ */
/* $NetBSD: machdep.c,v 1.214 1996/11/10 03:16:17 thorpej Exp $ */
/*-
@@ -1308,6 +1308,7 @@ void
amd_family6_setup(struct cpu_info *ci)
{
#if !defined(SMALL_KERNEL) && defined(I686_CPU)
+ int family = (ci->ci_signature >> 8) & 15;
extern void (*pagezero)(void *, size_t);
extern void sse2_pagezero(void *, size_t);
extern void i686_pagezero(void *, size_t);
@@ -1318,6 +1319,10 @@ amd_family6_setup(struct cpu_info *ci)
pagezero = i686_pagezero;
setperf_setup = amd_family6_setperf_setup;
+
+ if (family == 0xf) {
+ amd64_errata(ci);
+ }
#endif
}
@@ -1868,8 +1873,6 @@ identifycpu(struct cpu_info *ci)
} else
i386_use_fxsave = 0;
- if (vendor == CPUVENDOR_AMD)
- amd64_errata(ci);
#endif /* I686_CPU */
}