On Fri, Jan 13, 2023 at 08:28:59PM +0100, Jann Horn wrote: > No, that lockdep assert has to be there. Page table traversal is > allowed under any one of the mmap lock, the anon_vma lock (if the VMA > is associated with an anon_vma), and the mapping lock (if the VMA is > associated with a mapping); and so to be able to remove page tables, > we must hold all three of them. Okay, that's fair. I agree with the patch now. Maybe adjust the commit message a bit? Anyway: Acked-by: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx> BTW, I've noticied that you recently added tlb_remove_table_sync_one(). I'm not sure why it is needed. Why IPI in pmdp_collapse_flush() in not good enough to serialize against GUP fast? -- Kiryl Shutsemau / Kirill A. Shutemov