mm: export follow_pte()
authorJan Kara <[email protected]>
Wed, 14 Dec 2016 23:07:45 +0000 (15:07 -0800)
committerLinus Torvalds <[email protected]>
Thu, 15 Dec 2016 00:04:09 +0000 (16:04 -0800)
DAX will need to implement its own version of page_check_address().  To
avoid duplicating page table walking code, export follow_pte() which
does what we need.

Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Jan Kara <[email protected]>
Reviewed-by: Ross Zwisler <[email protected]>
Cc: Kirill A. Shutemov <[email protected]>
Cc: Dan Williams <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
include/linux/mm.h
mm/memory.c

index cec967e93f959a448dba04c454c230b1fa7a64f0..63926492c06ac07bc2a35a19b509ad9b7bd25b77 100644 (file)
@@ -1210,6 +1210,8 @@ int copy_page_range(struct mm_struct *dst, struct mm_struct *src,
                        struct vm_area_struct *vma);
 void unmap_mapping_range(struct address_space *mapping,
                loff_t const holebegin, loff_t const holelen, int even_cows);
+int follow_pte(struct mm_struct *mm, unsigned long address, pte_t **ptepp,
+              spinlock_t **ptlp);
 int follow_pfn(struct vm_area_struct *vma, unsigned long address,
        unsigned long *pfn);
 int follow_phys(struct vm_area_struct *vma, unsigned long address,
index 8b7f0656a9211f2d6b88b23af4b95eabd061cc75..edd899d0decb4594ab535a6b64249595ad7eb2a2 100644 (file)
@@ -3817,8 +3817,8 @@ out:
        return -EINVAL;
 }
 
-static inline int follow_pte(struct mm_struct *mm, unsigned long address,
-                            pte_t **ptepp, spinlock_t **ptlp)
+int follow_pte(struct mm_struct *mm, unsigned long address, pte_t **ptepp,
+              spinlock_t **ptlp)
 {
        int res;