diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index a384c3887ee7af00eb4c68684f7c3249e4b6e9fb..026c9437456c419191779d92a57d17bbb1aa6fcd 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -3781,12 +3781,10 @@ struct page *rmqueue(struct zone *preferred_zone,
 
 	page = rmqueue_buddy(preferred_zone, zone, order, alloc_flags,
 							migratetype);
-	if (unlikely(!page))
-		return NULL;
 
 out:
 	/* Separate test+clear to avoid unnecessary atomics */
-	if (test_bit(ZONE_BOOSTED_WATERMARK, &zone->flags)) {
+	if (unlikely(test_bit(ZONE_BOOSTED_WATERMARK, &zone->flags))) {
 		clear_bit(ZONE_BOOSTED_WATERMARK, &zone->flags);
 		wakeup_kswapd(zone, 0, 0, zone_idx(zone));
 	}