summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorJérôme Glisse <jglisse@redhat.com>2019-05-14 03:19:58 +0300
committerLinus Torvalds <torvalds@linux-foundation.org>2019-05-14 19:47:48 +0300
commit73231612dc7c907bd96880a4086ee55eef6b6888 (patch)
tree2ac729baa37d66a450a71bfe2c039153807f0bfb /include/linux
parent25f23a0c7127b65c4d8200ccda8a352ad5ce1e1d (diff)
downloadlinux-73231612dc7c907bd96880a4086ee55eef6b6888.tar.xz
mm/hmm: improve and rename hmm_vma_fault() to hmm_range_fault()
Minor optimization around hmm_pte_need_fault(). Rename for consistency between code, comments and documentation. Also improves the comments on all the possible returns values. Improve the function by returning the number of populated entries in pfns array. Link: http://lkml.kernel.org/r/20190403193318.16478-6-jglisse@redhat.com Signed-off-by: Jérôme Glisse <jglisse@redhat.com> Reviewed-by: Ralph Campbell <rcampbell@nvidia.com> Cc: John Hubbard <jhubbard@nvidia.com> Cc: Dan Williams <dan.j.williams@intel.com> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Balbir Singh <bsingharora@gmail.com> Cc: Dan Carpenter <dan.carpenter@oracle.com> Cc: Ira Weiny <ira.weiny@intel.com> Cc: Matthew Wilcox <willy@infradead.org> Cc: Souptick Joarder <jrdr.linux@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/hmm.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/include/linux/hmm.h b/include/linux/hmm.h
index 32206b0b1bfd..e9afd23c2eac 100644
--- a/include/linux/hmm.h
+++ b/include/linux/hmm.h
@@ -391,7 +391,18 @@ bool hmm_vma_range_done(struct hmm_range *range);
*
* See the function description in mm/hmm.c for further documentation.
*/
-int hmm_vma_fault(struct hmm_range *range, bool block);
+long hmm_range_fault(struct hmm_range *range, bool block);
+
+/* This is a temporary helper to avoid merge conflict between trees. */
+static inline int hmm_vma_fault(struct hmm_range *range, bool block)
+{
+ long ret = hmm_range_fault(range, block);
+ if (ret == -EBUSY)
+ ret = -EAGAIN;
+ else if (ret == -EAGAIN)
+ ret = -EBUSY;
+ return ret < 0 ? ret : 0;
+}
/* Below are for HMM internal use only! Not to be used by device driver! */
void hmm_mm_destroy(struct mm_struct *mm);