mirror of
https://github.com/FEX-Emu/linux.git
synced 2025-01-17 23:15:52 +00:00
[PATCH] fix extra page ref count in follow_hugetlb_page
git-commit: d5d4b0aa4e1430d73050babba999365593bdb9d2 "[PATCH] optimize follow_hugetlb_page" breaks mlock on hugepage areas. I mis-interpret pages argument and made get_page() unconditional. It should only get a ref count when "pages" argument is non-null. Credit goes to Adam Litke who spotted the bug. Signed-off-by: Ken Chen <kenneth.w.chen@intel.com> Acked-by: Adam Litke <agl@us.ibm.com> Cc: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
93fac7041f
commit
d6692183ac
@ -697,9 +697,10 @@ int follow_hugetlb_page(struct mm_struct *mm, struct vm_area_struct *vma,
|
||||
pfn_offset = (vaddr & ~HPAGE_MASK) >> PAGE_SHIFT;
|
||||
page = pte_page(*pte);
|
||||
same_page:
|
||||
get_page(page);
|
||||
if (pages)
|
||||
if (pages) {
|
||||
get_page(page);
|
||||
pages[i] = page + pfn_offset;
|
||||
}
|
||||
|
||||
if (vmas)
|
||||
vmas[i] = vma;
|
||||
|
Loading…
x
Reference in New Issue
Block a user