mm: replace get_vaddr_frames() write/force parameters with gup_flags
This removes the 'write' and 'force' from get_vaddr_frames() and replaces them with 'gup_flags' to make the use of FOLL_FORCE explicit in callers as use of this flag can result in surprising behaviour (and hence bugs) within the mm subsystem. Signed-off-by: Lorenzo Stoakes <lstoakes@gmail.com> Acked-by: Michal Hocko <mhocko@suse.com> Reviewed-by: Jan Kara <jack@suse.cz> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:

committed by
Linus Torvalds

parent
3b913179c3
commit
7f23b3504a
@@ -11,10 +11,7 @@
|
||||
* get_vaddr_frames() - map virtual addresses to pfns
|
||||
* @start: starting user address
|
||||
* @nr_frames: number of pages / pfns from start to map
|
||||
* @write: whether pages will be written to by the caller
|
||||
* @force: whether to force write access even if user mapping is
|
||||
* readonly. See description of the same argument of
|
||||
get_user_pages().
|
||||
* @gup_flags: flags modifying lookup behaviour
|
||||
* @vec: structure which receives pages / pfns of the addresses mapped.
|
||||
* It should have space for at least nr_frames entries.
|
||||
*
|
||||
@@ -34,23 +31,17 @@
|
||||
* This function takes care of grabbing mmap_sem as necessary.
|
||||
*/
|
||||
int get_vaddr_frames(unsigned long start, unsigned int nr_frames,
|
||||
bool write, bool force, struct frame_vector *vec)
|
||||
unsigned int gup_flags, struct frame_vector *vec)
|
||||
{
|
||||
struct mm_struct *mm = current->mm;
|
||||
struct vm_area_struct *vma;
|
||||
int ret = 0;
|
||||
int err;
|
||||
int locked;
|
||||
unsigned int gup_flags = 0;
|
||||
|
||||
if (nr_frames == 0)
|
||||
return 0;
|
||||
|
||||
if (write)
|
||||
gup_flags |= FOLL_WRITE;
|
||||
if (force)
|
||||
gup_flags |= FOLL_FORCE;
|
||||
|
||||
if (WARN_ON_ONCE(nr_frames > vec->nr_allocated))
|
||||
nr_frames = vec->nr_allocated;
|
||||
|
||||
|
Reference in New Issue
Block a user