]> git.baikalelectronics.ru Git - kernel.git/commit
x86: mm: consolidate VM_FAULT_RETRY handling
authorLinus Torvalds <torvalds@linux-foundation.org>
Mon, 15 Dec 2014 23:07:33 +0000 (15:07 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 15 Dec 2014 23:07:33 +0000 (15:07 -0800)
commit591325452d7c146a9c22ffe338a4fcfe8ddf4ff6
tree7c4e2506fb972eda829b3ff7f0eca3dbae8e25ae
parent3324e795c921eede775e7eb734de8cbe22e22127
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>
arch/x86/mm/fault.c