• Linus Torvalds's avatar
    mm: always expand the stack with the mmap write lock held · 8d7071af
    Linus Torvalds authored
    This finishes the job of always holding the mmap write lock when
    extending the user stack vma, and removes the 'write_locked' argument
    from the vm helper functions again.
    
    For some cases, we just avoid expanding the stack at all: drivers and
    page pinning really shouldn't be extending any stacks.  Let's see if any
    strange users really wanted that.
    
    It's worth noting that architectures that weren't converted to the new
    lock_mm_and_find_vma() helper function are left using the legacy
    "expand_stack()" function, but it has been changed to drop the mmap_lock
    and take it for writing while expanding the vma.  This makes it fairly
    straightforward to convert the remaining architectures.
    
    As a result of dropping and re-taking the lock, the calling conventions
    for this function have also changed, since the old vma may no longer be
    valid.  So it will now return the new vma if successful, and NULL - and
    the lock dropped - if the area could not be extended.
    Tested-by: default avatarVegard Nossum <vegard.nossum@oracle.com>
    Tested-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> # ia64
    Tested-by: Frank Scheiner <frank.scheiner@web.de> # ia64
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    8d7071af
fault.c 8.49 KB