Skip to content
  • Carsten Otte's avatar
    do_wp_page: fix regression with execute in place · ab92661d
    Carsten Otte authored
    Fix do_wp_page for VM_MIXEDMAP mappings.
    
    In the case where pfn_valid returns 0 for a pfn at the beginning of
    do_wp_page and the mapping is not shared writable, the code branches to
    label `gotten:' with old_page == NULL.
    
    In case the vma is locked (vma->vm_flags & VM_LOCKED), lock_page,
    clear_page_mlock, and unlock_page try to access the old_page.
    
    This patch checks whether old_page is valid before it is dereferenced.
    
    The regression was introduced by "mlock: mlocked pages are unevictable"
    (commit b291f000
    
    ).
    
    Signed-off-by: default avatarCarsten Otte <cotte@de.ibm.com>
    Cc: Nick Piggin <npiggin@suse.de>
    Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
    Cc: <stable@kernel.org>		[2.6.28.x]
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    ab92661d