diff --git a/mm/slub.c b/mm/slub.c
index 21b3f004f614f3886529d548f2aa06a3dc12ab72..8b1b99d399cbe0b33b0ae507a78fe24335a849f6 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -2042,7 +2042,7 @@ static void flush_all(struct kmem_cache *s)
 static inline int node_match(struct page *page, int node)
 {
 #ifdef CONFIG_NUMA
-	if (node != NUMA_NO_NODE && page_to_nid(page) != node)
+	if (!page || (node != NUMA_NO_NODE && page_to_nid(page) != node))
 		return 0;
 #endif
 	return 1;