[PATCH] mm: Add WARN_ON for possibility of infinite loop if empty lists in free_pcppages_bulk'

From: Pankaj Gupta
Date: Fri Aug 19 2016 - 08:16:20 EST


While debugging issue in realtime kernel i found a scenario
which resulted in infinite loop resulting because of empty pcp->lists
and valid 'to_free' value. This patch is to add 'WARN_ON' in function
'free_pcppages_bulk' if there is possibility of infinite loop because
of any bug in code.

Signed-off-by: Pankaj Gupta <pagupta@xxxxxxxxxx>
---
mm/page_alloc.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 3fbe73a..07d3080 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -1096,6 +1096,8 @@ static void free_pcppages_bulk(struct zone *zone, int count,
if (++migratetype == MIGRATE_PCPTYPES)
migratetype = 0;
list = &pcp->lists[migratetype];
+
+ WARN_ON(batch_free > MIGRATE_PCPTYPES);
} while (list_empty(list));

/* This is the only non-empty list. Free them all. */
--
2.7.4