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