Thread (4 messages) flat view 4 messages, 3 authors, 2019-05-09

Re: [PATCH] powerpc/book3s/64: check for NULL pointer in pgd_alloc()

From: Michael Ellerman <hidden>
Date: 2019-05-06 11:35:21

Rick Lindsley [off-list ref] 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 <redacted>
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
quoted hunk ↗ jump to hunk
--- 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
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help