• Liam R. Howlett's avatar
    mm: move may_expand_vm() check in mmap_region() · 224c1c70
    Liam R. Howlett authored
    The may_expand_vm() check requires the count of the pages within the
    munmap range.  Since this is needed for accounting and obtained later, the
    reodering of ma_expand_vm() to later in the call stack, after the vma
    munmap struct (vms) is initialised and the gather stage is potentially
    run, will allow for a single loop over the vmas.  The gather sage does not
    commit any work and so everything can be undone in the case of a failure.
    
    The MAP_FIXED page count is available after the vms_gather_munmap_vmas()
    call, so use it instead of looping over the vmas twice.
    
    Link: https://lkml.kernel.org/r/20240830040101.822209-20-Liam.Howlett@oracle.comSigned-off-by: default avatarLiam R. Howlett <Liam.Howlett@Oracle.com>
    Reviewed-by: default avatarLorenzo Stoakes <lorenzo.stoakes@oracle.com>
    Cc: Bert Karwatzki <spasswolf@web.de>
    Cc: Jeff Xu <jeffxu@chromium.org>
    Cc: Jiri Olsa <olsajiri@gmail.com>
    Cc: Kees Cook <kees@kernel.org>
    Cc: Lorenzo Stoakes <lstoakes@gmail.com>
    Cc: Mark Brown <broonie@kernel.org>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: "Paul E. McKenney" <paulmck@kernel.org>
    Cc: Paul Moore <paul@paul-moore.com>
    Cc: Sidhartha Kumar <sidhartha.kumar@oracle.com>
    Cc: Suren Baghdasaryan <surenb@google.com>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    224c1c70
mmap.c 61.5 KB