[PATCH] powerpc/book3s/64: check for NULL pointer in pgd_alloc()
Michael Ellerman
michaele at au1.ibm.com
Mon May 6 21:33:41 AEST 2019
Rick Lindsley <ricklind at 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 <ricklind at 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
More information about the Linuxppc-dev
mailing list