Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3085354d authored by Ingo Molnar's avatar Ingo Molnar
Browse files

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: default avatarIngo Molnar <mingo@elte.hu>
parent fb8c7fb2
Loading
Loading
Loading
Loading
+4 −7
Original line number Diff line number Diff line
@@ -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;