diff --git a/mm/memory-failure.c b/mm/memory-failure.c
index cd7e6974de77bbfb044d81e264cf337b5014dd90..757f6b0accfe84d959b7fe5899b5916ad0ed1f14 100644
--- a/mm/memory-failure.c
+++ b/mm/memory-failure.c
@@ -235,7 +235,7 @@ void shake_page(struct page *p, int access)
 		int nr;
 		do {
 			nr = shrink_slab(1000, GFP_KERNEL, 1000);
-			if (page_count(p) == 0)
+			if (page_count(p) == 1)
 				break;
 		} while (nr > 10);
 	}