Rick Lindsley <rickl...@linux.vnet.ibm.com> writes:
> When the memset code was added to pgd_alloc(), it failed to consider
> that kmem_cache_alloc() can return NULL. It's uncommon, but not
> impossible under heavy memory contention.

Can you post an oops log? Just so if someone hits it they can possibly
recognise it from the back trace etc.


> Signed-off-by: Rick Lindsley <rickl...@vnet.linux.ibm.com>
> Fixes: cf266dbcd2a7 ("Zero PGD pages on allocation")

I don't have that commit. Did you mean:

Fixes: fc5c2f4a55a2 ("powerpc/mm/hash64: Zero PGD pages on allocation")


cheers

> --- a/arch/powerpc/include/asm/book3s/64/pgalloc.h
> +++ b/arch/powerpc/include/asm/book3s/64/pgalloc.h
> @@ -81,6 +81,10 @@ static inline pgd_t *pgd_alloc(struct mm
>   
>       pgd = kmem_cache_alloc(PGT_CACHE(PGD_INDEX_SIZE),
>                              pgtable_gfp_flags(mm, GFP_KERNEL));
> +
> +     if (unlikely(!pgd))
> +             return pgd;
> +
>       /*
>        * Don't scan the PGD for pointers, it contains references to PUDs but
>        * those references are not full pointers and so can't be recognised by

Reply via email to