diff --git a/mm/mempolicy.c b/mm/mempolicy.c
index bd4f249aada3fc5d1c08f26b3ed94f6e600758a8..5e90b3fb77949a1f4fa8461046284841046215a7 100644
--- a/mm/mempolicy.c
+++ b/mm/mempolicy.c
@@ -1934,7 +1934,7 @@ unsigned int mempolicy_slab_node(void)
 	struct mempolicy *policy;
 	int node = numa_mem_id();
 
-	if (in_interrupt())
+	if (!in_task())
 		return node;
 
 	policy = current->mempolicy;