summaryrefslogtreecommitdiffstats
path: root/include/linux/mm.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/mm.h')
-rw-r--r--include/linux/mm.h45
1 files changed, 21 insertions, 24 deletions
diff --git a/include/linux/mm.h b/include/linux/mm.h
index 0389c34ac529..bd6512559bed 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -547,7 +547,7 @@ static inline void vma_set_anonymous(struct vm_area_struct *vma)
547struct mmu_gather; 547struct mmu_gather;
548struct inode; 548struct inode;
549 549
550#if !defined(__HAVE_ARCH_PTE_DEVMAP) || !defined(CONFIG_TRANSPARENT_HUGEPAGE) 550#if !defined(CONFIG_ARCH_HAS_PTE_DEVMAP) || !defined(CONFIG_TRANSPARENT_HUGEPAGE)
551static inline int pmd_devmap(pmd_t pmd) 551static inline int pmd_devmap(pmd_t pmd)
552{ 552{
553 return 0; 553 return 0;
@@ -956,41 +956,28 @@ static inline bool put_devmap_managed_page(struct page *page)
956 return false; 956 return false;
957} 957}
958 958
959static inline bool is_device_private_page(const struct page *page)
960{
961 return is_zone_device_page(page) &&
962 page->pgmap->type == MEMORY_DEVICE_PRIVATE;
963}
964
965#ifdef CONFIG_PCI_P2PDMA
966static inline bool is_pci_p2pdma_page(const struct page *page)
967{
968 return is_zone_device_page(page) &&
969 page->pgmap->type == MEMORY_DEVICE_PCI_P2PDMA;
970}
971#else /* CONFIG_PCI_P2PDMA */
972static inline bool is_pci_p2pdma_page(const struct page *page)
973{
974 return false;
975}
976#endif /* CONFIG_PCI_P2PDMA */
977
978#else /* CONFIG_DEV_PAGEMAP_OPS */ 959#else /* CONFIG_DEV_PAGEMAP_OPS */
979static inline bool put_devmap_managed_page(struct page *page) 960static inline bool put_devmap_managed_page(struct page *page)
980{ 961{
981 return false; 962 return false;
982} 963}
964#endif /* CONFIG_DEV_PAGEMAP_OPS */
983 965
984static inline bool is_device_private_page(const struct page *page) 966static inline bool is_device_private_page(const struct page *page)
985{ 967{
986 return false; 968 return IS_ENABLED(CONFIG_DEV_PAGEMAP_OPS) &&
969 IS_ENABLED(CONFIG_DEVICE_PRIVATE) &&
970 is_zone_device_page(page) &&
971 page->pgmap->type == MEMORY_DEVICE_PRIVATE;
987} 972}
988 973
989static inline bool is_pci_p2pdma_page(const struct page *page) 974static inline bool is_pci_p2pdma_page(const struct page *page)
990{ 975{
991 return false; 976 return IS_ENABLED(CONFIG_DEV_PAGEMAP_OPS) &&
977 IS_ENABLED(CONFIG_PCI_P2PDMA) &&
978 is_zone_device_page(page) &&
979 page->pgmap->type == MEMORY_DEVICE_PCI_P2PDMA;
992} 980}
993#endif /* CONFIG_DEV_PAGEMAP_OPS */
994 981
995/* 127: arbitrary random number, small enough to assemble well */ 982/* 127: arbitrary random number, small enough to assemble well */
996#define page_ref_zero_or_close_to_overflow(page) \ 983#define page_ref_zero_or_close_to_overflow(page) \
@@ -1556,6 +1543,10 @@ long get_user_pages_unlocked(unsigned long start, unsigned long nr_pages,
1556int get_user_pages_fast(unsigned long start, int nr_pages, 1543int get_user_pages_fast(unsigned long start, int nr_pages,
1557 unsigned int gup_flags, struct page **pages); 1544 unsigned int gup_flags, struct page **pages);
1558 1545
1546int account_locked_vm(struct mm_struct *mm, unsigned long pages, bool inc);
1547int __account_locked_vm(struct mm_struct *mm, unsigned long pages, bool inc,
1548 struct task_struct *task, bool bypass_rlim);
1549
1559/* Container for pinned pfns / pages */ 1550/* Container for pinned pfns / pages */
1560struct frame_vector { 1551struct frame_vector {
1561 unsigned int nr_allocated; /* Number of frames we have space for */ 1552 unsigned int nr_allocated; /* Number of frames we have space for */
@@ -1763,7 +1754,7 @@ static inline void sync_mm_rss(struct mm_struct *mm)
1763} 1754}
1764#endif 1755#endif
1765 1756
1766#ifndef __HAVE_ARCH_PTE_DEVMAP 1757#ifndef CONFIG_ARCH_HAS_PTE_DEVMAP
1767static inline int pte_devmap(pte_t pte) 1758static inline int pte_devmap(pte_t pte)
1768{ 1759{
1769 return 0; 1760 return 0;
@@ -2767,7 +2758,13 @@ extern int randomize_va_space;
2767#endif 2758#endif
2768 2759
2769const char * arch_vma_name(struct vm_area_struct *vma); 2760const char * arch_vma_name(struct vm_area_struct *vma);
2761#ifdef CONFIG_MMU
2770void print_vma_addr(char *prefix, unsigned long rip); 2762void print_vma_addr(char *prefix, unsigned long rip);
2763#else
2764static inline void print_vma_addr(char *prefix, unsigned long rip)
2765{
2766}
2767#endif
2771 2768
2772void *sparse_buffer_alloc(unsigned long size); 2769void *sparse_buffer_alloc(unsigned long size);
2773struct page *sparse_mem_map_populate(unsigned long pnum, int nid, 2770struct page *sparse_mem_map_populate(unsigned long pnum, int nid,