summaryrefslogtreecommitdiff
path: root/Documentation/mn10300
diff options
context:
space:
mode:
authorVlastimil Babka <vbabka@suse.cz>2016-06-04 00:55:52 +0300
committerLinus Torvalds <torvalds@linux-foundation.org>2016-06-04 02:02:56 +0300
commit83b9355bf6f449c7d1231206c300ea89d3313a9d (patch)
tree7f780a66a7476fcd2410d6932b957c9e9dd0afa0 /Documentation/mn10300
parent879be4f378cb412af3a3fe107d35835c99099add (diff)
downloadlinux-83b9355bf6f449c7d1231206c300ea89d3313a9d.tar.xz
mm, page_alloc: prevent infinite loop in buffered_rmqueue()
In DEBUG_VM kernel, we can hit infinite loop for order == 0 in buffered_rmqueue() when check_new_pcp() returns 1, because the bad page is never removed from the pcp list. Fix this by removing the page before retrying. Also we don't need to check if page is non-NULL, because we simply grab it from the list which was just tested for being non-empty. Fixes: 479f854a207c ("mm, page_alloc: defer debugging checks of pages allocated from the PCP") Link: http://lkml.kernel.org/r/20160530090154.GM2527@techsingularity.net Signed-off-by: Vlastimil Babka <vbabka@suse.cz> Signed-off-by: Mel Gorman <mgorman@techsingularity.net> Reported-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'Documentation/mn10300')
0 files changed, 0 insertions, 0 deletions