mremap.c (5ab0fc155dc0cac3b74584f7bc972569b0f8a57b) mremap.c (7d4a8be0c4b2b7ffb367929d2b352651f083806b)
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * mm/mremap.c
4 *
5 * (C) Copyright 1996 Linus Torvalds
6 *
7 * Address space accounting code <alan@lxorguk.ukuu.org.uk>
8 * (C) Copyright 2002 Red Hat Inc, All Rights Reserved

--- 484 unchanged lines hidden (view full) ---

493
494 old_end = old_addr + len;
495
496 if (is_vm_hugetlb_page(vma))
497 return move_hugetlb_page_tables(vma, new_vma, old_addr,
498 new_addr, len);
499
500 flush_cache_range(vma, old_addr, old_end);
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * mm/mremap.c
4 *
5 * (C) Copyright 1996 Linus Torvalds
6 *
7 * Address space accounting code <alan@lxorguk.ukuu.org.uk>
8 * (C) Copyright 2002 Red Hat Inc, All Rights Reserved

--- 484 unchanged lines hidden (view full) ---

493
494 old_end = old_addr + len;
495
496 if (is_vm_hugetlb_page(vma))
497 return move_hugetlb_page_tables(vma, new_vma, old_addr,
498 new_addr, len);
499
500 flush_cache_range(vma, old_addr, old_end);
501 mmu_notifier_range_init(&range, MMU_NOTIFY_UNMAP, 0, vma, vma->vm_mm,
501 mmu_notifier_range_init(&range, MMU_NOTIFY_UNMAP, 0, vma->vm_mm,
502 old_addr, old_end);
503 mmu_notifier_invalidate_range_start(&range);
504
505 for (; old_addr < old_end; old_addr += extent, new_addr += extent) {
506 cond_resched();
507 /*
508 * If extent is PUD-sized try to speed up the move by moving at the
509 * PUD level if possible.

--- 596 unchanged lines hidden ---
502 old_addr, old_end);
503 mmu_notifier_invalidate_range_start(&range);
504
505 for (; old_addr < old_end; old_addr += extent, new_addr += extent) {
506 cond_resched();
507 /*
508 * If extent is PUD-sized try to speed up the move by moving at the
509 * PUD level if possible.

--- 596 unchanged lines hidden ---