mm/huge_memory: fix copying user highpage
The THP copy-on-write handler falls back to regular-sized pages for a huge page replacement upon allocation failure or if THP has been individually disabled in the target VMA. The loop responsible for copying page-sized chunks accidentally uses multiples of PAGE_SHIFT instead of PAGE_SIZE as the virtual address arg for copy_user_highpage(). Signed-off-by: Hillf Danton <dhillf@gmail.com> Acked-by: Johannes Weiner <jweiner@redhat.com> Reviewed-by: Andrea Arcangeli <aarcange@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
df9d6985be
commit
0089e4853a
|
@ -830,7 +830,7 @@ static int do_huge_pmd_wp_page_fallback(struct mm_struct *mm,
|
|||
|
||||
for (i = 0; i < HPAGE_PMD_NR; i++) {
|
||||
copy_user_highpage(pages[i], page + i,
|
||||
haddr + PAGE_SHIFT*i, vma);
|
||||
haddr + PAGE_SIZE * i, vma);
|
||||
__SetPageUptodate(pages[i]);
|
||||
cond_resched();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue