summaryrefslogtreecommitdiffstats
path: root/mm/huge_memory.c
diff options
context:
space:
mode:
authorAndrea Arcangeli <aarcange@redhat.com>2012-10-04 01:51:06 +0200
committerMel Gorman <mgorman@suse.de>2012-12-11 14:42:38 +0000
commit1ba6e0b50b479cbadb8f05ebde3020da9ac87201 (patch)
tree7143c7c591ebf16723d2e1d4e898bea75ee6c609 /mm/huge_memory.c
parent0b9d705297b273657923518dbea2377cd03532ed (diff)
downloadlinux-stable-1ba6e0b50b479cbadb8f05ebde3020da9ac87201.tar.gz
linux-stable-1ba6e0b50b479cbadb8f05ebde3020da9ac87201.tar.bz2
linux-stable-1ba6e0b50b479cbadb8f05ebde3020da9ac87201.zip
mm: numa: split_huge_page: transfer the NUMA type from the pmd to the pte
When we split a transparent hugepage, transfer the NUMA type from the pmd to the pte if needed. Signed-off-by: Andrea Arcangeli <aarcange@redhat.com> Signed-off-by: Mel Gorman <mgorman@suse.de> Reviewed-by: Rik van Riel <riel@redhat.com>
Diffstat (limited to 'mm/huge_memory.c')
-rw-r--r--mm/huge_memory.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/mm/huge_memory.c b/mm/huge_memory.c
index 35c66a269bcc..cd24aa562144 100644
--- a/mm/huge_memory.c
+++ b/mm/huge_memory.c
@@ -1364,6 +1364,8 @@ static int __split_huge_page_map(struct page *page,
BUG_ON(page_mapcount(page) != 1);
if (!pmd_young(*pmd))
entry = pte_mkold(entry);
+ if (pmd_numa(*pmd))
+ entry = pte_mknuma(entry);
pte = pte_offset_map(&_pmd, haddr);
BUG_ON(!pte_none(*pte));
set_pte_at(mm, haddr, pte, entry);