• Andrew Morton's avatar
    [PATCH] move_vma() make_pages_present() fix · 17003453
    Andrew Morton authored
    From: Hugh Dickins <hugh@veritas.com>
    
    mremap's move_vma VM_LOCKED case was still wrong.
    
    If the do_munmap unmaps a part of new_vma, then its vm_start and vm_end
    from before cannot both be the right addresses for the make_pages_present
    range, and may BUG() there.
    
    We need [new_addr, new_addr+new_len) to be locked down; but
    move_page_tables already transferred the locked pages [new_addr,
    new_addr+old_len), and they're either held in a VM_LOCKED vma throughout,
    or temporarily in no vma: in neither case can be swapped out, so no need to
    run over that range again.
    17003453
mremap.c 11.1 KB