x86: prefetch fix #2
Linus noticed a second bug and an uncleanliness: - we'd return on any instruction fetch fault - we'd use both the value of 16 and the PF_INSTR symbol which are the same and make no sense the cleanup nicely unifies this piece of logic. Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
fb8c7fb25d
commit
3085354de6
|
@ -91,13 +91,10 @@ static int is_prefetch(struct pt_regs *regs, unsigned long addr,
|
|||
int prefetch = 0;
|
||||
unsigned char *max_instr;
|
||||
|
||||
#ifdef CONFIG_X86_32
|
||||
/* Catch an obscure case of prefetch inside an NX page: */
|
||||
if ((__supported_pte_mask & _PAGE_NX) && (error_code & 16))
|
||||
return 0;
|
||||
#endif
|
||||
|
||||
/* If it was a exec fault on NX page, ignore */
|
||||
/*
|
||||
* If it was a exec (instruction fetch) fault on NX page, then
|
||||
* do not ignore the fault:
|
||||
*/
|
||||
if (error_code & PF_INSTR)
|
||||
return 0;
|
||||
|
||||
|
|
Loading…
Reference in New Issue