]> git.baikalelectronics.ru Git - kernel.git/commit
mm: fix pageblock bitmap allocation
authorLinus Torvalds <torvalds@linux-foundation.org>
Mon, 18 Feb 2013 17:58:02 +0000 (09:58 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 18 Feb 2013 17:58:02 +0000 (09:58 -0800)
commit7f3cec6ff6f965e39bad65ba7a1cf66162097ee6
tree8687da177b111914b165bb723cea20e299731191
parentb3d6aef0e55fa9e345aed55fc2e1322b5388e1a2
mm: fix pageblock bitmap allocation

Commit 816532ba51b9 ("mm: use aligned zone start for pfn_to_bitidx
calculation") fixed out calculation of the index into the pageblock
bitmap when a !SPARSEMEM zome was not aligned to pageblock_nr_pages.

However, the _allocation_ of that bitmap had never taken this alignment
requirement into accout, so depending on the exact size and alignment of
the zone, the use of that index could then access past the allocation,
resulting in some very subtle memory corruption.

This was reported (and bisected) by Ingo Molnar: one of his random
config builds would hang with certain very specific kernel command line
options.

In the meantime, commit 816532ba51b9 has been marked for stable, so this
fix needs to be back-ported to the stable kernels that backported the
commit to use the right alignment.

Bisected-and-tested-by: Ingo Molnar <mingo@kernel.org>
Acked-by: Mel Gorman <mgorman@suse.de>
Cc: stable@kernel.org
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
mm/page_alloc.c