mm: Cleanup faultaround and finish_fault() codepaths
alloc_set_pte() has two users with different requirements: in the faultaround code, it called from an atomic context and PTE page table has to be preallocated. finish_fault() can sleep and allocate page table as needed. PTL locking rules are also strange, hard to follow and overkill for finish_fault(). Let's untangle the mess. alloc_set_pte() has gone now. All locking is explicit. The price is some code duplication to handle huge pages in faultaround path, but it should be fine, having overall improvement in readability. Link: https://lore.kernel.org/r/20201229132819.najtavneutnf7ajp@box Signed-off-by:Kirill A. Shutemov <kirill.shutemov@linux.intel.com> [will: s/from from/from/ in comment; spotted by willy] Signed-off-by:
Will Deacon <will@kernel.org>
parent
19c329f6
-
mentioned in commit 4861f6d3
-
mentioned in commit eac96c3e
-
mentioned in commit 6ac01725
-
mentioned in commit 3fe2895c
-
mentioned in commit 2722fb0f
-
mentioned in commit f1a0a81e
-
mentioned in commit 70427f6e
-
mentioned in commit f9cedf6b
-
mentioned in commit c5a09d16
-
mentioned in commit 686cc4de
-
mentioned in commit 799f90c3
Please register or sign in to comment