Patch "gup: Introduce FOLL_NOFAULT flag to disable page faults" has been added to the 5.15-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    gup: Introduce FOLL_NOFAULT flag to disable page faults

to the 5.15-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     gup-introduce-foll_nofault-flag-to-disable-page-faults.patch
and it can be found in the queue-5.15 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.


>From foo@baz Fri Apr 29 11:07:48 AM CEST 2022
From: Anand Jain <anand.jain@xxxxxxxxxx>
Date: Fri, 15 Apr 2022 06:28:51 +0800
Subject: gup: Introduce FOLL_NOFAULT flag to disable page faults
To: stable@xxxxxxxxxxxxxxx
Cc: linux-btrfs@xxxxxxxxxxxxxxx, Andreas Gruenbacher <agruenba@xxxxxxxxxx>, Anand Jain <anand.jain@xxxxxxxxxx>
Message-ID: <2ee1e383ae1cca975426b54ab251257f6d4e12c0.1649951733.git.anand.jain@xxxxxxxxxx>

From: Andreas Gruenbacher <agruenba@xxxxxxxxxx>

commit 55b8fe703bc51200d4698596c90813453b35ae63 upstream

Introduce a new FOLL_NOFAULT flag that causes get_user_pages to return
-EFAULT when it would otherwise trigger a page fault.  This is roughly
similar to FOLL_FAST_ONLY but available on all architectures, and less
fragile.

Signed-off-by: Andreas Gruenbacher <agruenba@xxxxxxxxxx>
Signed-off-by: Anand Jain <anand.jain@xxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
---
 include/linux/mm.h |    3 ++-
 mm/gup.c           |    4 +++-
 2 files changed, 5 insertions(+), 2 deletions(-)

--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -2858,7 +2858,8 @@ struct page *follow_page(struct vm_area_
 #define FOLL_FORCE	0x10	/* get_user_pages read/write w/o permission */
 #define FOLL_NOWAIT	0x20	/* if a disk transfer is needed, start the IO
 				 * and return without waiting upon it */
-#define FOLL_POPULATE	0x40	/* fault in page */
+#define FOLL_POPULATE	0x40	/* fault in pages (with FOLL_MLOCK) */
+#define FOLL_NOFAULT	0x80	/* do not fault in pages */
 #define FOLL_HWPOISON	0x100	/* check page is hwpoisoned */
 #define FOLL_NUMA	0x200	/* force NUMA hinting page fault */
 #define FOLL_MIGRATION	0x400	/* wait for page to replace migration entry */
--- a/mm/gup.c
+++ b/mm/gup.c
@@ -943,6 +943,8 @@ static int faultin_page(struct vm_area_s
 	/* mlock all present pages, but do not fault in new pages */
 	if ((*flags & (FOLL_POPULATE | FOLL_MLOCK)) == FOLL_MLOCK)
 		return -ENOENT;
+	if (*flags & FOLL_NOFAULT)
+		return -EFAULT;
 	if (*flags & FOLL_WRITE)
 		fault_flags |= FAULT_FLAG_WRITE;
 	if (*flags & FOLL_REMOTE)
@@ -2868,7 +2870,7 @@ static int internal_get_user_pages_fast(
 
 	if (WARN_ON_ONCE(gup_flags & ~(FOLL_WRITE | FOLL_LONGTERM |
 				       FOLL_FORCE | FOLL_PIN | FOLL_GET |
-				       FOLL_FAST_ONLY)))
+				       FOLL_FAST_ONLY | FOLL_NOFAULT)))
 		return -EINVAL;
 
 	if (gup_flags & FOLL_PIN)


Patches currently in stable-queue which might be from anand.jain@xxxxxxxxxx are

queue-5.15/gup-turn-fault_in_pages_-readable-writeable-into-fault_in_-readable-writeable.patch
queue-5.15/iov_iter-introduce-nofault-flag-to-disable-page-faults.patch
queue-5.15/gfs2-fix-mmap-page-fault-deadlocks-for-direct-i-o.patch
queue-5.15/iomap-support-partial-direct-i-o-on-user-copy-failures.patch
queue-5.15/mm-gup-make-fault_in_safe_writeable-use-fixup_user_fault.patch
queue-5.15/gfs2-add-wrapper-for-iomap_file_buffered_write.patch
queue-5.15/gup-introduce-foll_nofault-flag-to-disable-page-faults.patch
queue-5.15/iov_iter-introduce-fault_in_iov_iter_writeable.patch
queue-5.15/gfs2-fix-mmap-page-fault-deadlocks-for-buffered-i-o.patch
queue-5.15/btrfs-fallback-to-blocking-mode-when-doing-async-dio-over-multiple-extents.patch
queue-5.15/gfs2-clean-up-function-may_grant.patch
queue-5.15/btrfs-fix-deadlock-due-to-page-faults-during-direct-io-reads-and-writes.patch
queue-5.15/iov_iter-turn-iov_iter_fault_in_readable-into-fault_in_iov_iter_readable.patch
queue-5.15/gfs2-move-the-inode-glock-locking-to-gfs2_file_buffered_write.patch
queue-5.15/gfs2-introduce-flag-for-glock-holder-auto-demotion.patch
queue-5.15/iomap-fix-iomap_dio_rw-return-value-for-user-copies.patch
queue-5.15/gfs2-eliminate-ip-i_gh.patch
queue-5.15/iomap-add-done_before-argument-to-iomap_dio_rw.patch



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux