Re: [PATCH 3/5] x86: pgtable: Drop pXd_none() checks from pXd_free_pYd_table()

From: Kani, Toshi
Date: Fri Sep 14 2018 - 16:37:54 EST


On Wed, 2018-09-12 at 11:26 +0100, Will Deacon wrote:
> Now that the core code checks this for us, we don't need to do it in the
> backend.
>
> Cc: Chintan Pandya <cpandya@xxxxxxxxxxxxxx>
> Cc: Toshi Kani <toshi.kani@xxxxxxx>
> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> Cc: Michal Hocko <mhocko@xxxxxxxx>
> Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> Signed-off-by: Will Deacon <will.deacon@xxxxxxx>
> ---
> arch/x86/mm/pgtable.c | 6 ------
> 1 file changed, 6 deletions(-)
>
> diff --git a/arch/x86/mm/pgtable.c b/arch/x86/mm/pgtable.c
> index ae394552fb94..b4919c44a194 100644
> --- a/arch/x86/mm/pgtable.c
> +++ b/arch/x86/mm/pgtable.c
> @@ -796,9 +796,6 @@ int pud_free_pmd_page(pud_t *pud, unsigned long addr)
> pte_t *pte;
> int i;
>
> - if (pud_none(*pud))
> - return 1;
> -

Do we need to remove this safe guard? I feel list this is same as
kfree() accepting NULL.

Thanks,
-Toshi


> pmd = (pmd_t *)pud_page_vaddr(*pud);
> pmd_sv = (pmd_t *)__get_free_page(GFP_KERNEL);
> if (!pmd_sv)
> @@ -840,9 +837,6 @@ int pmd_free_pte_page(pmd_t *pmd, unsigned long addr)
> {
> pte_t *pte;
>
> - if (pmd_none(*pmd))
> - return 1;
> -
> pte = (pte_t *)pmd_page_vaddr(*pmd);
> pmd_clear(pmd);
>