summaryrefslogtreecommitdiffstats
path: root/mm/fremap.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-12-16 00:07:33 +0100
committerLinus Torvalds <torvalds@linux-foundation.org>2014-12-16 00:07:33 +0100
commit26178ec11ef3c6c814bf16a0a2b9c2f7242e3c64 (patch)
tree7c4e2506fb972eda829b3ff7f0eca3dbae8e25ae /mm/fremap.c
parentx86: mm: move mmap_sem unlock from mm_fault_error() to caller (diff)
downloadlinux-26178ec11ef3c6c814bf16a0a2b9c2f7242e3c64.tar.xz
linux-26178ec11ef3c6c814bf16a0a2b9c2f7242e3c64.zip
x86: mm: consolidate VM_FAULT_RETRY handling
The VM_FAULT_RETRY handling was confusing and incorrect for the case of returning to kernel mode. We need to handle the exception table fixup if we return to kernel mode due to a fatal signal - it will basically look to the kernel user mode access like the access failed due to the VM going away from udner it. Which is correct - the process is dying - and avoids the whole "repeat endless kernel page faults" case. Handling the VM_FAULT_RETRY early and in just one place also simplifies the mmap_sem handling, since once we've taken care of VM_FAULT_RETRY we know that we can just drop the lock. The remaining accounting and possible error handling is thread-local and does not need the mmap_sem. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/fremap.c')
0 files changed, 0 insertions, 0 deletions