hugetlb: fix copy_hugetlb_page_range() to handle migration/hwpoisoned entry
authorNaoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Mon, 23 Jun 2014 20:22:03 +0000 (13:22 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 23 Jun 2014 23:47:43 +0000 (16:47 -0700)
commit4a705fef986231a3e7a6b1a6d3c37025f021f49f
tree540d2a129fa06a8441050071a2a2fa53f953bc41
parent13ace4d0d9db40e10ecd66dfda14e297571be813
hugetlb: fix copy_hugetlb_page_range() to handle migration/hwpoisoned entry

There's a race between fork() and hugepage migration, as a result we try
to "dereference" a swap entry as a normal pte, causing kernel panic.
The cause of the problem is that copy_hugetlb_page_range() can't handle
"swap entry" family (migration entry and hwpoisoned entry) so let's fix
it.

[akpm@linux-foundation.org: coding-style fixes]
Signed-off-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Acked-by: Hugh Dickins <hughd@google.com>
Cc: Christoph Lameter <cl@linux.com>
Cc: <stable@vger.kernel.org> [2.6.37+]
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
mm/hugetlb.c