On Tue, Jan 02, 2024 at 03:32:56PM -0800, Suren Baghdasaryan wrote: > While testing the split PMD path with lockdep enabled I've got an > "Invalid wait context" error caused by split_huge_page_to_list() trying > to lock anon_vma->rwsem while inside RCU read section. The issues is due > to move_pages_pte() calling split_folio() under RCU read lock. Fix this > by unmapping the PTEs and exiting RCU read section before splitting the > folio and then retrying. The same retry pattern is used when locking the > folio or anon_vma in this function. After splitting the large folio we > unlock and release it because after the split the old folio might not be > the one that contains the src_addr. > > Fixes: 94b01c885131 ("userfaultfd: UFFDIO_MOVE uABI") > Signed-off-by: Suren Baghdasaryan <surenb@xxxxxxxxxx> Reviewed-by: Peter Xu <peterx@xxxxxxxxxx> Thanks, -- Peter Xu