diff options
Diffstat (limited to 'include/linux/mm.h')
-rw-r--r-- | include/linux/mm.h | 45 |
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) | |||
547 | struct mmu_gather; | 547 | struct mmu_gather; |
548 | struct inode; | 548 | struct 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) |
551 | static inline int pmd_devmap(pmd_t pmd) | 551 | static 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 | ||
959 | static 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 | ||
966 | static 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 */ | ||
972 | static 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 */ |
979 | static inline bool put_devmap_managed_page(struct page *page) | 960 | static 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 | ||
984 | static inline bool is_device_private_page(const struct page *page) | 966 | static 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 | ||
989 | static inline bool is_pci_p2pdma_page(const struct page *page) | 974 | static 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, | |||
1556 | int get_user_pages_fast(unsigned long start, int nr_pages, | 1543 | int 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 | ||
1546 | int account_locked_vm(struct mm_struct *mm, unsigned long pages, bool inc); | ||
1547 | int __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 */ |
1560 | struct frame_vector { | 1551 | struct 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 |
1767 | static inline int pte_devmap(pte_t pte) | 1758 | static 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 | ||
2769 | const char * arch_vma_name(struct vm_area_struct *vma); | 2760 | const char * arch_vma_name(struct vm_area_struct *vma); |
2761 | #ifdef CONFIG_MMU | ||
2770 | void print_vma_addr(char *prefix, unsigned long rip); | 2762 | void print_vma_addr(char *prefix, unsigned long rip); |
2763 | #else | ||
2764 | static inline void print_vma_addr(char *prefix, unsigned long rip) | ||
2765 | { | ||
2766 | } | ||
2767 | #endif | ||
2771 | 2768 | ||
2772 | void *sparse_buffer_alloc(unsigned long size); | 2769 | void *sparse_buffer_alloc(unsigned long size); |
2773 | struct page *sparse_mem_map_populate(unsigned long pnum, int nid, | 2770 | struct page *sparse_mem_map_populate(unsigned long pnum, int nid, |