pgtable.c (f8bade6c9a6213c2c5ba6e5bf32415ecab6e41e5) | pgtable.c (97dc2a1548ab0dc320ce3618b73b3f9dc732b6ee) |
---|---|
1// SPDX-License-Identifier: GPL-2.0 2#include <linux/mm.h> 3#include <linux/gfp.h> 4#include <linux/hugetlb.h> 5#include <asm/pgalloc.h> 6#include <asm/tlb.h> 7#include <asm/fixmap.h> 8#include <asm/mtrr.h> --- 766 unchanged lines hidden (view full) --- 775 if (pmd_large(*pmd)) { 776 pmd_clear(pmd); 777 return 1; 778 } 779 780 return 0; 781} 782 | 1// SPDX-License-Identifier: GPL-2.0 2#include <linux/mm.h> 3#include <linux/gfp.h> 4#include <linux/hugetlb.h> 5#include <asm/pgalloc.h> 6#include <asm/tlb.h> 7#include <asm/fixmap.h> 8#include <asm/mtrr.h> --- 766 unchanged lines hidden (view full) --- 775 if (pmd_large(*pmd)) { 776 pmd_clear(pmd); 777 return 1; 778 } 779 780 return 0; 781} 782 |
783/* 784 * Until we support 512GB pages, skip them in the vmap area. 785 */ 786int p4d_free_pud_page(p4d_t *p4d, unsigned long addr) 787{ 788 return 0; 789} 790 | |
791#ifdef CONFIG_X86_64 792/** 793 * pud_free_pmd_page - Clear pud entry and free pmd page. 794 * @pud: Pointer to a PUD. 795 * @addr: Virtual address associated with pud. 796 * 797 * Context: The pud range has been unmapped and TLB purged. 798 * Return: 1 if clearing the entry succeeded. 0 otherwise. --- 57 unchanged lines hidden (view full) --- 856 857 free_page((unsigned long)pte); 858 859 return 1; 860} 861 862#else /* !CONFIG_X86_64 */ 863 | 783#ifdef CONFIG_X86_64 784/** 785 * pud_free_pmd_page - Clear pud entry and free pmd page. 786 * @pud: Pointer to a PUD. 787 * @addr: Virtual address associated with pud. 788 * 789 * Context: The pud range has been unmapped and TLB purged. 790 * Return: 1 if clearing the entry succeeded. 0 otherwise. --- 57 unchanged lines hidden (view full) --- 848 849 free_page((unsigned long)pte); 850 851 return 1; 852} 853 854#else /* !CONFIG_X86_64 */ 855 |
864int pud_free_pmd_page(pud_t *pud, unsigned long addr) 865{ 866 return pud_none(*pud); 867} 868 | |
869/* 870 * Disable free page handling on x86-PAE. This assures that ioremap() 871 * does not update sync'd pmd entries. See vmalloc_sync_one(). 872 */ 873int pmd_free_pte_page(pmd_t *pmd, unsigned long addr) 874{ 875 return pmd_none(*pmd); 876} 877 878#endif /* CONFIG_X86_64 */ 879#endif /* CONFIG_HAVE_ARCH_HUGE_VMAP */ | 856/* 857 * Disable free page handling on x86-PAE. This assures that ioremap() 858 * does not update sync'd pmd entries. See vmalloc_sync_one(). 859 */ 860int pmd_free_pte_page(pmd_t *pmd, unsigned long addr) 861{ 862 return pmd_none(*pmd); 863} 864 865#endif /* CONFIG_X86_64 */ 866#endif /* CONFIG_HAVE_ARCH_HUGE_VMAP */ |