summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlistair Popple <apopple@nvidia.com>2025-06-19 11:57:58 +0300
committerAndrew Morton <akpm@linux-foundation.org>2025-07-10 08:42:17 +0300
commit7b2ae3c47f65bc75985caaaba9f2fb601eebca20 (patch)
tree686ef2c304fc7416e10c1042f56da404fdb48244
parentfd2825b0760a10a9626986cca64f5664302ffdfc (diff)
downloadlinux-7b2ae3c47f65bc75985caaaba9f2fb601eebca20.tar.xz
mm/huge_memory: remove pXd_devmap usage from insert_pXd_pfn()
Nothing uses PFN_DEV anymore so no need to create devmap pXd's when mapping a PFN. Instead special mappings will be created which ensures vm_normal_page_pXd() will not return pages which don't have an associated page. This could change behaviour slightly on architectures where pXd_devmap() does not imply pXd_special() as the normal page checks would have fallen through to checking VM_PFNMAP/MIXEDMAP instead, which in theory at least could have returned a page. However vm_normal_page_pXd() should never have been returning pages for pXd_devmap() entries anyway, so anything relying on that would have been a bug. Link: https://lkml.kernel.org/r/cd8658f9ff10afcfffd8b145a39d98bf1c595ffa.1750323463.git-series.apopple@nvidia.com Signed-off-by: Alistair Popple <apopple@nvidia.com> Cc: Balbir Singh <balbirs@nvidia.com> Cc: Björn Töpel <bjorn@kernel.org> Cc: Björn Töpel <bjorn@rivosinc.com> Cc: Christoph Hellwig <hch@lst.de> Cc: Chunyan Zhang <zhang.lyra@gmail.com> Cc: Dan Williams <dan.j.williams@intel.com> Cc: David Hildenbrand <david@redhat.com> Cc: Deepak Gupta <debug@rivosinc.com> Cc: Gerald Schaefer <gerald.schaefer@linux.ibm.com> Cc: Inki Dae <m.szyprowski@samsung.com> Cc: Jason Gunthorpe <jgg@nvidia.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>
-rw-r--r--mm/huge_memory.c12
1 files changed, 2 insertions, 10 deletions
diff --git a/mm/huge_memory.c b/mm/huge_memory.c
index 7434d177b97c..54b5c37d9515 100644
--- a/mm/huge_memory.c
+++ b/mm/huge_memory.c
@@ -1415,11 +1415,7 @@ static int insert_pmd(struct vm_area_struct *vma, unsigned long addr,
add_mm_counter(mm, mm_counter_file(fop.folio), HPAGE_PMD_NR);
} else {
entry = pmd_mkhuge(pfn_t_pmd(fop.pfn, prot));
-
- if (pfn_t_devmap(fop.pfn))
- entry = pmd_mkdevmap(entry);
- else
- entry = pmd_mkspecial(entry);
+ entry = pmd_mkspecial(entry);
}
if (write) {
entry = pmd_mkyoung(pmd_mkdirty(entry));
@@ -1565,11 +1561,7 @@ static void insert_pud(struct vm_area_struct *vma, unsigned long addr,
add_mm_counter(mm, mm_counter_file(fop.folio), HPAGE_PUD_NR);
} else {
entry = pud_mkhuge(pfn_t_pud(fop.pfn, prot));
-
- if (pfn_t_devmap(fop.pfn))
- entry = pud_mkdevmap(entry);
- else
- entry = pud_mkspecial(entry);
+ entry = pud_mkspecial(entry);
}
if (write) {
entry = pud_mkyoung(pud_mkdirty(entry));