The patch titled Subject: mm/memory.c: allow different return codes for copy_nonpresent_pte() has been removed from the -mm tree. Its filename was mm-memoryc-allow-different-return-codes-for-copy_nonpresent_pte.patch This patch was dropped because an updated version will be merged ------------------------------------------------------ From: Alistair Popple <apopple@xxxxxxxxxx> Subject: mm/memory.c: allow different return codes for copy_nonpresent_pte() Currently if copy_nonpresent_pte() returns a non-zero value it is assumed to be a swap entry which requires further processing outside the loop in copy_pte_range() after dropping locks. This prevents other values being returned to signal conditions such as failure which a subsequent change requires. Instead make copy_nonpresent_pte() return an error code if further processing is required and read the value for the swap entry in the main loop under the ptl. Link: https://lkml.kernel.org/r/20210524132725.12697-7-apopple@xxxxxxxxxx Signed-off-by: Alistair Popple <apopple@xxxxxxxxxx> Cc: Balbir Singh <bsingharora@xxxxxxxxx> Cc: Ben Skeggs <bskeggs@xxxxxxxxxx> Cc: Christoph Hellwig <hch@xxxxxx> Cc: Hugh Dickins <hughd@xxxxxxxxxx> Cc: Jason Gunthorpe <jgg@xxxxxxxxxx> Cc: Jerome Glisse <jglisse@xxxxxxxxxx> Cc: John Hubbard <jhubbard@xxxxxxxxxx> Cc: Matthew Wilcox <willy@xxxxxxxxxxxxx> Cc: Peter Xu <peterx@xxxxxxxxxx> Cc: Ralph Campbell <rcampbell@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- mm/memory.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) --- a/mm/memory.c~mm-memoryc-allow-different-return-codes-for-copy_nonpresent_pte +++ a/mm/memory.c @@ -718,7 +718,7 @@ copy_nonpresent_pte(struct mm_struct *ds if (likely(!non_swap_entry(entry))) { if (swap_duplicate(entry) < 0) - return entry.val; + return -EAGAIN; /* make sure dst_mm is on swapoff's mmlist. */ if (unlikely(list_empty(&dst_mm->mmlist))) { @@ -974,11 +974,13 @@ again: continue; } if (unlikely(!pte_present(*src_pte))) { - entry.val = copy_nonpresent_pte(dst_mm, src_mm, - dst_pte, src_pte, - src_vma, addr, rss); - if (entry.val) + ret = copy_nonpresent_pte(dst_mm, src_mm, + dst_pte, src_pte, + src_vma, addr, rss); + if (ret == -EAGAIN) { + entry = pte_to_swp_entry(*src_pte); break; + } progress += 8; continue; } _ Patches currently in -mm which might be from apopple@xxxxxxxxxx are mm-device-exclusive-memory-access.patch mm-selftests-for-exclusive-device-memory.patch nouveau-svm-refactor-nouveau_range_fault.patch nouveau-svm-implement-atomic-svm-access.patch