diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-12-15 15:07:33 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-12-15 15:07:33 -0800 |
commit | 26178ec11ef3c6c814bf16a0a2b9c2f7242e3c64 (patch) | |
tree | 7c4e2506fb972eda829b3ff7f0eca3dbae8e25ae /mm/memory.c | |
parent | 7fb08eca45270d0ae86e1ad9d39c40b7a55d0190 (diff) | |
download | op-kernel-dev-26178ec11ef3c6c814bf16a0a2b9c2f7242e3c64.zip op-kernel-dev-26178ec11ef3c6c814bf16a0a2b9c2f7242e3c64.tar.gz |
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/memory.c')
0 files changed, 0 insertions, 0 deletions