On 07/15/2018 09:03 PM, Jiang Biao wrote:
> diff --git a/arch/x86/mm/pti.c b/arch/x86/mm/pti.c
> index 4d418e7..be9e5bc 100644
> --- a/arch/x86/mm/pti.c
> +++ b/arch/x86/mm/pti.c
> @@ -195,8 +195,10 @@ static p4d_t *pti_user_pagetable_walk_p4d(unsigned long 
> address)
>  static pmd_t *pti_user_pagetable_walk_pmd(unsigned long address)
>  {
>       gfp_t gfp = (GFP_KERNEL | __GFP_NOTRACK | __GFP_ZERO);
> -     p4d_t *p4d = pti_user_pagetable_walk_p4d(address);
>       pud_t *pud;
> +     p4d_t *p4d = pti_user_pagetable_walk_p4d(address);
> +     if (WARN_ON(!p4d))
> +             return NULL;

First of all, I don't think we need the (new) warning here.
pti_user_pagetable_walk_p4d() only returns NULL if you try it on a
userspace _address_ or the page allocation fails.  It already warns on
the address case.

If you think the allocation path needs a warning, please do it as close
as possible to the _source_ of the warning (the failed allocation), not
in the caller.

This goes for all the variations on this that you have in the set.

Reply via email to