diff options
author | Ira Weiny <ira.weiny@intel.com> | 2019-05-13 20:17:11 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2019-05-14 12:47:46 -0400 |
commit | 73b0140bf0fe9df90fb267c00673c4b9bf285430 (patch) | |
tree | 2076056c96b291bc875064b4e45ee4a6228f79b8 /lib/iov_iter.c | |
parent | b798bec4741bdd80224214fdd004c8e52698e425 (diff) |
mm/gup: change GUP fast to use flags rather than a write 'bool'
To facilitate additional options to get_user_pages_fast() change the
singular write parameter to be gup_flags.
This patch does not change any functionality. New functionality will
follow in subsequent patches.
Some of the get_user_pages_fast() call sites were unchanged because they
already passed FOLL_WRITE or 0 for the write parameter.
NOTE: It was suggested to change the ordering of the get_user_pages_fast()
arguments to ensure that callers were converted. This breaks the current
GUP call site convention of having the returned pages be the final
parameter. So the suggestion was rejected.
Link: http://lkml.kernel.org/r/20190328084422.29911-4-ira.weiny@intel.com
Link: http://lkml.kernel.org/r/20190317183438.2057-4-ira.weiny@intel.com
Signed-off-by: Ira Weiny <ira.weiny@intel.com>
Reviewed-by: Mike Marshall <hubcap@omnibond.com>
Cc: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dan Williams <dan.j.williams@intel.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: James Hogan <jhogan@kernel.org>
Cc: Jason Gunthorpe <jgg@ziepe.ca>
Cc: John Hubbard <jhubbard@nvidia.com>
Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Michal Hocko <mhocko@kernel.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Rich Felker <dalias@libc.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'lib/iov_iter.c')
-rw-r--r-- | lib/iov_iter.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/iov_iter.c b/lib/iov_iter.c index b396d328a764..f74fa832f3aa 100644 --- a/lib/iov_iter.c +++ b/lib/iov_iter.c | |||
@@ -1293,7 +1293,9 @@ ssize_t iov_iter_get_pages(struct iov_iter *i, | |||
1293 | len = maxpages * PAGE_SIZE; | 1293 | len = maxpages * PAGE_SIZE; |
1294 | addr &= ~(PAGE_SIZE - 1); | 1294 | addr &= ~(PAGE_SIZE - 1); |
1295 | n = DIV_ROUND_UP(len, PAGE_SIZE); | 1295 | n = DIV_ROUND_UP(len, PAGE_SIZE); |
1296 | res = get_user_pages_fast(addr, n, iov_iter_rw(i) != WRITE, pages); | 1296 | res = get_user_pages_fast(addr, n, |
1297 | iov_iter_rw(i) != WRITE ? FOLL_WRITE : 0, | ||
1298 | pages); | ||
1297 | if (unlikely(res < 0)) | 1299 | if (unlikely(res < 0)) |
1298 | return res; | 1300 | return res; |
1299 | return (res == n ? len : res * PAGE_SIZE) - *start; | 1301 | return (res == n ? len : res * PAGE_SIZE) - *start; |
@@ -1374,7 +1376,8 @@ ssize_t iov_iter_get_pages_alloc(struct iov_iter *i, | |||
1374 | p = get_pages_array(n); | 1376 | p = get_pages_array(n); |
1375 | if (!p) | 1377 | if (!p) |
1376 | return -ENOMEM; | 1378 | return -ENOMEM; |
1377 | res = get_user_pages_fast(addr, n, iov_iter_rw(i) != WRITE, p); | 1379 | res = get_user_pages_fast(addr, n, |
1380 | iov_iter_rw(i) != WRITE ? FOLL_WRITE : 0, p); | ||
1378 | if (unlikely(res < 0)) { | 1381 | if (unlikely(res < 0)) { |
1379 | kvfree(p); | 1382 | kvfree(p); |
1380 | return res; | 1383 | return res; |