| .. | .. |
|---|
| 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) |
|---|