mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-04-18 03:23:53 -04:00
mm: remove devmap related functions and page table bits
Now that DAX and all other reference counts to ZONE_DEVICE pages are managed normally there is no need for the special devmap PTE/PMD/PUD page table bits. So drop all references to these, freeing up a software defined page table bit on architectures supporting it. Link: https://lkml.kernel.org/r/6389398c32cc9daa3dfcaa9f79c7972525d310ce.1750323463.git-series.apopple@nvidia.com Signed-off-by: Alistair Popple <apopple@nvidia.com> Acked-by: Will Deacon <will@kernel.org> # arm64 Acked-by: David Hildenbrand <david@redhat.com> Suggested-by: Chunyan Zhang <zhang.lyra@gmail.com> Reviewed-by: Björn Töpel <bjorn@rivosinc.com> Reviewed-by: Jason Gunthorpe <jgg@nvidia.com> Cc: Balbir Singh <balbirs@nvidia.com> Cc: Björn Töpel <bjorn@kernel.org> Cc: Christoph Hellwig <hch@lst.de> Cc: Dan Williams <dan.j.williams@intel.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> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
committed by
Andrew Morton
parent
28dc88c39e
commit
d438d27341
@@ -348,12 +348,6 @@ static void __init pud_advanced_tests(struct pgtable_debug_args *args)
|
||||
vaddr &= HPAGE_PUD_MASK;
|
||||
|
||||
pud = pfn_pud(args->pud_pfn, args->page_prot);
|
||||
/*
|
||||
* Some architectures have debug checks to make sure
|
||||
* huge pud mapping are only found with devmap entries
|
||||
* For now test with only devmap entries.
|
||||
*/
|
||||
pud = pud_mkdevmap(pud);
|
||||
set_pud_at(args->mm, vaddr, args->pudp, pud);
|
||||
flush_dcache_page(page);
|
||||
pudp_set_wrprotect(args->mm, vaddr, args->pudp);
|
||||
@@ -366,7 +360,6 @@ static void __init pud_advanced_tests(struct pgtable_debug_args *args)
|
||||
WARN_ON(!pud_none(pud));
|
||||
#endif /* __PAGETABLE_PMD_FOLDED */
|
||||
pud = pfn_pud(args->pud_pfn, args->page_prot);
|
||||
pud = pud_mkdevmap(pud);
|
||||
pud = pud_wrprotect(pud);
|
||||
pud = pud_mkclean(pud);
|
||||
set_pud_at(args->mm, vaddr, args->pudp, pud);
|
||||
@@ -384,7 +377,6 @@ static void __init pud_advanced_tests(struct pgtable_debug_args *args)
|
||||
#endif /* __PAGETABLE_PMD_FOLDED */
|
||||
|
||||
pud = pfn_pud(args->pud_pfn, args->page_prot);
|
||||
pud = pud_mkdevmap(pud);
|
||||
pud = pud_mkyoung(pud);
|
||||
set_pud_at(args->mm, vaddr, args->pudp, pud);
|
||||
flush_dcache_page(page);
|
||||
@@ -693,53 +685,6 @@ static void __init pmd_protnone_tests(struct pgtable_debug_args *args)
|
||||
static void __init pmd_protnone_tests(struct pgtable_debug_args *args) { }
|
||||
#endif /* CONFIG_TRANSPARENT_HUGEPAGE */
|
||||
|
||||
#ifdef CONFIG_ARCH_HAS_PTE_DEVMAP
|
||||
static void __init pte_devmap_tests(struct pgtable_debug_args *args)
|
||||
{
|
||||
pte_t pte = pfn_pte(args->fixed_pte_pfn, args->page_prot);
|
||||
|
||||
pr_debug("Validating PTE devmap\n");
|
||||
WARN_ON(!pte_devmap(pte_mkdevmap(pte)));
|
||||
}
|
||||
|
||||
#ifdef CONFIG_TRANSPARENT_HUGEPAGE
|
||||
static void __init pmd_devmap_tests(struct pgtable_debug_args *args)
|
||||
{
|
||||
pmd_t pmd;
|
||||
|
||||
if (!has_transparent_hugepage())
|
||||
return;
|
||||
|
||||
pr_debug("Validating PMD devmap\n");
|
||||
pmd = pfn_pmd(args->fixed_pmd_pfn, args->page_prot);
|
||||
WARN_ON(!pmd_devmap(pmd_mkdevmap(pmd)));
|
||||
}
|
||||
|
||||
#ifdef CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD
|
||||
static void __init pud_devmap_tests(struct pgtable_debug_args *args)
|
||||
{
|
||||
pud_t pud;
|
||||
|
||||
if (!has_transparent_pud_hugepage())
|
||||
return;
|
||||
|
||||
pr_debug("Validating PUD devmap\n");
|
||||
pud = pfn_pud(args->fixed_pud_pfn, args->page_prot);
|
||||
WARN_ON(!pud_devmap(pud_mkdevmap(pud)));
|
||||
}
|
||||
#else /* !CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD */
|
||||
static void __init pud_devmap_tests(struct pgtable_debug_args *args) { }
|
||||
#endif /* CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD */
|
||||
#else /* CONFIG_TRANSPARENT_HUGEPAGE */
|
||||
static void __init pmd_devmap_tests(struct pgtable_debug_args *args) { }
|
||||
static void __init pud_devmap_tests(struct pgtable_debug_args *args) { }
|
||||
#endif /* CONFIG_TRANSPARENT_HUGEPAGE */
|
||||
#else
|
||||
static void __init pte_devmap_tests(struct pgtable_debug_args *args) { }
|
||||
static void __init pmd_devmap_tests(struct pgtable_debug_args *args) { }
|
||||
static void __init pud_devmap_tests(struct pgtable_debug_args *args) { }
|
||||
#endif /* CONFIG_ARCH_HAS_PTE_DEVMAP */
|
||||
|
||||
static void __init pte_soft_dirty_tests(struct pgtable_debug_args *args)
|
||||
{
|
||||
pte_t pte = pfn_pte(args->fixed_pte_pfn, args->page_prot);
|
||||
@@ -1333,10 +1278,6 @@ static int __init debug_vm_pgtable(void)
|
||||
pte_protnone_tests(&args);
|
||||
pmd_protnone_tests(&args);
|
||||
|
||||
pte_devmap_tests(&args);
|
||||
pmd_devmap_tests(&args);
|
||||
pud_devmap_tests(&args);
|
||||
|
||||
pte_soft_dirty_tests(&args);
|
||||
pmd_soft_dirty_tests(&args);
|
||||
pte_swap_soft_dirty_tests(&args);
|
||||
|
||||
Reference in New Issue
Block a user