mm-madvise-skip-unmapped-vma-holes-passed-to-process_madvise.patch removed from -mm tree
The patch titled
Subject: mm: madvise: skip unmapped vma holes passed to process_madvise
has been removed from the -mm tree. Its filename was
mm-madvise-skip-unmapped-vma-holes-passed-to-process_madvise.patch
This patch was dropped because it was merged into mainline or a subsystem tree
------------------------------------------------------
From: Charan Teja Kalla <[email protected]>
Subject: mm: madvise: skip unmapped vma holes passed to process_madvise
The process_madvise() system call is expected to skip holes in vma passed through 'struct iovec' vector list. But do_madvise, which process_madvise() calls for each vma, returns ENOMEM in case of unmapped holes, despite the VMA is processed.
Thus process_madvise() should treat ENOMEM as expected and consider the VMA passed to as processed and continue processing other vma's in the vector list. Returning -ENOMEM to user, despite the VMA is processed, will be unable to figure out where to start the next madvise.
---
mm/madvise.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)
mm/madvise.c renamed from mm/madvise.c~mm-madvise-skip-unmapped-vma-holes-passed-to-process_madvise +8 -1
@@ -1428,9 +1428,16 @@ SYSCALL_DEFINE5(process_madvise, int, piwhile (iov_iter_count (&iter)) { iovec =iov_iter_iovec (&iter); +/* +* do_madvise returns ENOMEM if unmapped holes are present +* in the passed VMA. process_madvise() is expected to skip +* unmapped holes passed to it in the 'struct iovec' list +* and not fail because of them. Thus treat -ENOMEM return +* from do_madvise as valid and continue processing. +*/ ret =do_madvise (mm, (unsigned long )iovec.iov_base, iovec.iov_len, behavior); -if (ret <0 ) +if (ret <0 && ret != -ENOMEM )break ;iov_iter_advance (&iter, iovec.iov_len); }
_
Patches currently in -mm which might be from [email protected] are