From: Rik van Riel Date: Sat, 24 Mar 2012 14:26:21 +0000 (-0400) Subject: Fix potential endless loop in kswapd when compaction is not enabled X-Git-Tag: v3.4-rc1~95 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=496b919b3bdd957d4b1727df79bfa3751bced1c1;p=~emulex%2Finfiniband.git Fix potential endless loop in kswapd when compaction is not enabled We should only test compaction_suitable if the kernel is built with CONFIG_COMPACTION, otherwise the stub compaction_suitable function will always return COMPACT_SKIPPED and send kswapd into an infinite loop. Reported-by: Anton Blanchard Signed-off-by: Rik van Riel Signed-off-by: Linus Torvalds --- diff --git a/mm/vmscan.c b/mm/vmscan.c index 7658fd6536d..33c332bbab7 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -2946,7 +2946,8 @@ out: continue; /* Would compaction fail due to lack of free memory? */ - if (compaction_suitable(zone, order) == COMPACT_SKIPPED) + if (COMPACTION_BUILD && + compaction_suitable(zone, order) == COMPACT_SKIPPED) goto loop_again; /* Confirm the zone is balanced for order-0 */