• Suren Baghdasaryan's avatar
    mm: drop per-VMA lock when returning VM_FAULT_RETRY or VM_FAULT_COMPLETED · 4089eef0
    Suren Baghdasaryan authored
    handle_mm_fault returning VM_FAULT_RETRY or VM_FAULT_COMPLETED means
    mmap_lock has been released.  However with per-VMA locks behavior is
    different and the caller should still release it.  To make the rules
    consistent for the caller, drop the per-VMA lock when returning
    VM_FAULT_RETRY or VM_FAULT_COMPLETED.  Currently the only path returning
    VM_FAULT_RETRY under per-VMA locks is do_swap_page and no path returns
    VM_FAULT_COMPLETED for now.
    
    [willy@infradead.org: fix riscv]
      Link: https://lkml.kernel.org/r/CAJuCfpE6GWEx1rPBmNpUfoD5o-gNFz9-UFywzCE2PbEGBiVz7g@mail.gmail.com
    Link: https://lkml.kernel.org/r/20230630211957.1341547-4-surenb@google.comSigned-off-by: default avatarSuren Baghdasaryan <surenb@google.com>
    Acked-by: default avatarPeter Xu <peterx@redhat.com>
    Tested-by: default avatarConor Dooley <conor.dooley@microchip.com>
    Cc: Alistair Popple <apopple@nvidia.com>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: Christian Brauner <brauner@kernel.org>
    Cc: Christoph Hellwig <hch@lst.de>
    Cc: David Hildenbrand <david@redhat.com>
    Cc: David Howells <dhowells@redhat.com>
    Cc: Davidlohr Bueso <dave@stgolabs.net>
    Cc: Hillf Danton <hdanton@sina.com>
    Cc: "Huang, Ying" <ying.huang@intel.com>
    Cc: Hugh Dickins <hughd@google.com>
    Cc: Jan Kara <jack@suse.cz>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: Josef Bacik <josef@toxicpanda.com>
    Cc: Laurent Dufour <ldufour@linux.ibm.com>
    Cc: Liam R. Howlett <Liam.Howlett@oracle.com>
    Cc: Lorenzo Stoakes <lstoakes@gmail.com>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Michal Hocko <mhocko@suse.com>
    Cc: Michel Lespinasse <michel@lespinasse.org>
    Cc: Minchan Kim <minchan@google.com>
    Cc: Pavel Tatashin <pasha.tatashin@soleen.com>
    Cc: Punit Agrawal <punit.agrawal@bytedance.com>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    Cc: Yu Zhao <yuzhao@google.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    4089eef0
fault.c 23.7 KB