From: Ingo Molnar Date: Thu, 27 Mar 2008 14:58:28 +0000 (+0100) Subject: x86: fix prefetch workaround X-Git-Tag: v2.6.25-rc8~73^2~6 X-Git-Url: http://pilppa.com/gitweb/?a=commitdiff_plain;h=bc713dcf35c427ae8377fb9a4d1b7f891054ce13;p=linux-2.6-omap-h63xx.git x86: fix prefetch workaround some early Athlon XP's and Opterons generate bogus faults on prefetch instructions. The workaround for this regressed over .24 - reinstate it. Signed-off-by: Ingo Molnar --- diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c index fdc667422df..c0c82bc143c 100644 --- a/arch/x86/mm/fault.c +++ b/arch/x86/mm/fault.c @@ -92,7 +92,8 @@ static int is_prefetch(struct pt_regs *regs, unsigned long addr, unsigned char *max_instr; #ifdef CONFIG_X86_32 - if (!(__supported_pte_mask & _PAGE_NX)) + /* Catch an obscure case of prefetch inside an NX page: */ + if ((__supported_pte_mask & _PAGE_NX) && (error_code & 16)) return 0; #endif