.. | .. |
---|
9 | 9 | * PFN_SG_LAST - pfn references a page and is the last scatterlist entry |
---|
10 | 10 | * PFN_DEV - pfn is not covered by system memmap by default |
---|
11 | 11 | * PFN_MAP - pfn has a dynamic page mapping established by a device driver |
---|
| 12 | + * PFN_SPECIAL - for CONFIG_FS_DAX_LIMITED builds to allow XIP, but not |
---|
| 13 | + * get_user_pages |
---|
12 | 14 | */ |
---|
13 | 15 | #define PFN_FLAGS_MASK (((u64) (~PAGE_MASK)) << (BITS_PER_LONG_LONG - PAGE_SHIFT)) |
---|
14 | 16 | #define PFN_SG_CHAIN (1ULL << (BITS_PER_LONG_LONG - 1)) |
---|
.. | .. |
---|
64 | 66 | return PFN_PHYS(pfn_t_to_pfn(pfn)); |
---|
65 | 67 | } |
---|
66 | 68 | |
---|
67 | | -static inline void *pfn_t_to_virt(pfn_t pfn) |
---|
68 | | -{ |
---|
69 | | - if (pfn_t_has_page(pfn)) |
---|
70 | | - return __va(pfn_t_to_phys(pfn)); |
---|
71 | | - return NULL; |
---|
72 | | -} |
---|
73 | | - |
---|
74 | 69 | static inline pfn_t page_to_pfn_t(struct page *page) |
---|
75 | 70 | { |
---|
76 | 71 | return pfn_to_pfn_t(page_to_pfn(page)); |
---|
.. | .. |
---|
102 | 97 | #endif |
---|
103 | 98 | #endif |
---|
104 | 99 | |
---|
105 | | -#ifdef __HAVE_ARCH_PTE_DEVMAP |
---|
| 100 | +#ifdef CONFIG_ARCH_HAS_PTE_DEVMAP |
---|
106 | 101 | static inline bool pfn_t_devmap(pfn_t pfn) |
---|
107 | 102 | { |
---|
108 | 103 | const u64 flags = PFN_DEV|PFN_MAP; |
---|
.. | .. |
---|
120 | 115 | defined(CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD) |
---|
121 | 116 | pud_t pud_mkdevmap(pud_t pud); |
---|
122 | 117 | #endif |
---|
123 | | -#endif /* __HAVE_ARCH_PTE_DEVMAP */ |
---|
| 118 | +#endif /* CONFIG_ARCH_HAS_PTE_DEVMAP */ |
---|
124 | 119 | |
---|
125 | 120 | #ifdef CONFIG_ARCH_HAS_PTE_SPECIAL |
---|
126 | 121 | static inline bool pfn_t_special(pfn_t pfn) |
---|