Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

mm: remove PFN_DEV, PFN_MAP, PFN_SPECIAL, PFN_SG_CHAIN and PFN_SG_LAST

The PFN_MAP flag is no longer used for anything, so remove it. The
PFN_SG_CHAIN and PFN_SG_LAST flags never appear to have been used so also
remove them. The last user of PFN_SPECIAL was removed by 653d7825c149
("dcssblk: mark DAX broken, remove FS_DAX_LIMITED support").

Users of PFN_DEV were removed earlier in this series by "mm: Remove
remaining uses of PFN_DEV".

Link: https://lkml.kernel.org/r/670b3950d70b4d97b905bb597dadfd3633de4314.1750323463.git-series.apopple@nvidia.com
Signed-off-by: Alistair Popple <apopple@nvidia.com>
Acked-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Reviewed-by: Dan Williams <dan.j.williams@intel.com>
Cc: Balbir Singh <balbirs@nvidia.com>
Cc: Björn Töpel <bjorn@kernel.org>
Cc: Björn Töpel <bjorn@rivosinc.com>
Cc: Chunyan Zhang <zhang.lyra@gmail.com>
Cc: Deepak Gupta <debug@rivosinc.com>
Cc: Gerald Schaefer <gerald.schaefer@linux.ibm.com>
Cc: Inki Dae <m.szyprowski@samsung.com>
Cc: John Groves <john@groves.net>
Cc: John Hubbard <jhubbard@nvidia.com>
Cc: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
Cc: Will Deacon <will@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>

authored by

Alistair Popple and committed by
Andrew Morton
984921ed d438d273

+2 -54
+2 -48
include/linux/pfn_t.h
··· 5 5 6 6 /* 7 7 * PFN_FLAGS_MASK - mask of all the possible valid pfn_t flags 8 - * PFN_SG_CHAIN - pfn is a pointer to the next scatterlist entry 9 - * PFN_SG_LAST - pfn references a page and is the last scatterlist entry 10 - * PFN_DEV - pfn is not covered by system memmap by default 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 14 8 */ 15 9 #define PFN_FLAGS_MASK (((u64) (~PAGE_MASK)) << (BITS_PER_LONG_LONG - PAGE_SHIFT)) 16 - #define PFN_SG_CHAIN (1ULL << (BITS_PER_LONG_LONG - 1)) 17 - #define PFN_SG_LAST (1ULL << (BITS_PER_LONG_LONG - 2)) 18 - #define PFN_DEV (1ULL << (BITS_PER_LONG_LONG - 3)) 19 - #define PFN_MAP (1ULL << (BITS_PER_LONG_LONG - 4)) 20 - #define PFN_SPECIAL (1ULL << (BITS_PER_LONG_LONG - 5)) 21 10 22 11 #define PFN_FLAGS_TRACE \ 23 - { PFN_SPECIAL, "SPECIAL" }, \ 24 - { PFN_SG_CHAIN, "SG_CHAIN" }, \ 25 - { PFN_SG_LAST, "SG_LAST" }, \ 26 - { PFN_DEV, "DEV" }, \ 27 - { PFN_MAP, "MAP" } 12 + { } 28 13 29 14 static inline pfn_t __pfn_to_pfn_t(unsigned long pfn, u64 flags) 30 15 { ··· 31 46 32 47 static inline bool pfn_t_has_page(pfn_t pfn) 33 48 { 34 - return (pfn.val & PFN_MAP) == PFN_MAP || (pfn.val & PFN_DEV) == 0; 49 + return true; 35 50 } 36 51 37 52 static inline unsigned long pfn_t_to_pfn(pfn_t pfn) ··· 82 97 #endif 83 98 #endif 84 99 85 - #ifdef CONFIG_ARCH_HAS_PTE_DEVMAP 86 - static inline bool pfn_t_devmap(pfn_t pfn) 87 - { 88 - const u64 flags = PFN_DEV|PFN_MAP; 89 - 90 - return (pfn.val & flags) == flags; 91 - } 92 - #else 93 - static inline bool pfn_t_devmap(pfn_t pfn) 94 - { 95 - return false; 96 - } 97 - pte_t pte_mkdevmap(pte_t pte); 98 - pmd_t pmd_mkdevmap(pmd_t pmd); 99 - #if defined(CONFIG_TRANSPARENT_HUGEPAGE) && \ 100 - defined(CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD) 101 - pud_t pud_mkdevmap(pud_t pud); 102 - #endif 103 - #endif /* CONFIG_ARCH_HAS_PTE_DEVMAP */ 104 - 105 - #ifdef CONFIG_ARCH_HAS_PTE_SPECIAL 106 - static inline bool pfn_t_special(pfn_t pfn) 107 - { 108 - return (pfn.val & PFN_SPECIAL) == PFN_SPECIAL; 109 - } 110 - #else 111 - static inline bool pfn_t_special(pfn_t pfn) 112 - { 113 - return false; 114 - } 115 - #endif /* CONFIG_ARCH_HAS_PTE_SPECIAL */ 116 100 #endif /* _LINUX_PFN_T_H_ */
-2
mm/memory.c
··· 2581 2581 /* these checks mirror the abort conditions in vm_normal_page */ 2582 2582 if (vma->vm_flags & VM_MIXEDMAP) 2583 2583 return true; 2584 - if (pfn_t_special(pfn)) 2585 - return true; 2586 2584 if (is_zero_pfn(pfn_t_to_pfn(pfn))) 2587 2585 return true; 2588 2586 return false;
-4
tools/testing/nvdimm/test/iomap.c
··· 137 137 138 138 pfn_t __wrap_phys_to_pfn_t(phys_addr_t addr, unsigned long flags) 139 139 { 140 - struct nfit_test_resource *nfit_res = get_nfit_res(addr); 141 - 142 - if (nfit_res) 143 - flags &= ~PFN_MAP; 144 140 return phys_to_pfn_t(addr, flags); 145 141 } 146 142 EXPORT_SYMBOL(__wrap_phys_to_pfn_t);