]> Pileus Git - ~andy/linux/blobdiff - arch/x86/mm/fault.c
Merge branch 'ux500/devel' into next/devel
[~andy/linux] / arch / x86 / mm / fault.c
index 0d17c8c50acd54334b6c92335dad6e4c954ca18f..5db0490deb070d12368aeee042b8edc35ed456d6 100644 (file)
@@ -17,7 +17,7 @@
 #include <asm/traps.h>                 /* dotraplinkage, ...           */
 #include <asm/pgalloc.h>               /* pgd_*(), ...                 */
 #include <asm/kmemcheck.h>             /* kmemcheck_*(), ...           */
-#include <asm/vsyscall.h>
+#include <asm/fixmap.h>                        /* VSYSCALL_START               */
 
 /*
  * Page fault error code bits:
@@ -420,12 +420,14 @@ static noinline __kprobes int vmalloc_fault(unsigned long address)
        return 0;
 }
 
+#ifdef CONFIG_CPU_SUP_AMD
 static const char errata93_warning[] =
 KERN_ERR 
 "******* Your BIOS seems to not contain a fix for K8 errata #93\n"
 "******* Working around it, but it may cause SEGVs or burn power.\n"
 "******* Please consider a BIOS update.\n"
 "******* Disabling USB legacy in the BIOS may also help.\n";
+#endif
 
 /*
  * No vm86 mode in 64-bit mode:
@@ -505,7 +507,11 @@ bad:
  */
 static int is_errata93(struct pt_regs *regs, unsigned long address)
 {
-#ifdef CONFIG_X86_64
+#if defined(CONFIG_X86_64) && defined(CONFIG_CPU_SUP_AMD)
+       if (boot_cpu_data.x86_vendor != X86_VENDOR_AMD
+           || boot_cpu_data.x86 != 0xf)
+               return 0;
+
        if (address != regs->ip)
                return 0;