x86, mm: fault.c, give another attempt at prefetch handing before SIGBUS
authorIngo Molnar <mingo@elte.hu>
Fri, 20 Feb 2009 22:39:02 +0000 (23:39 +0100)
committerIngo Molnar <mingo@elte.hu>
Fri, 20 Feb 2009 23:09:46 +0000 (00:09 +0100)
commitcd1b68f08f6328737928e5b8ba8ef80394680ff0
tree049aa8e9cd982cb7325cb70e9fdecdfce1a010f3
parent7c178a26d3e753d2a4346d3e4b8aa549d387f698
x86, mm: fault.c, give another attempt at prefetch handing before SIGBUS

Impact: extend prefetch handling on 64-bit

Currently there's an extra is_prefetch() check done in do_sigbus(),
which we only do on 32 bits.

This is a last-ditch check before we terminate a task, so it's worth
giving prefetch instructions another chance - should none of our
existing quirks have caught a prefetch instruction related spurious
fault.

The only risk is if a prefetch causes a real sigbus, in that case
we'll not OOM but try another fault. But this code has been on
32-bit for a long time, so it should be fine in practice.

So do this on 64-bit too - and thus remove one more #ifdef.

Cc: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/mm/fault.c