• Al Viro's avatar
    flush_tlb_range() needs ->page_table_lock when ->mmap_sem is not held · cd2934a3
    Al Viro authored
    All other callers already hold either ->mmap_sem (exclusive) or
    ->page_table_lock.  And we need it because some page table flushing
    instanced do work explicitly with ge tables.
    
    See e.g.  arch/powerpc/mm/tlb_hash32.c, flush_tlb_range() and
    flush_range() in there.  The same goes for uml, with a lot more
    extensive playing with page tables.
    
    Almost all callers are actually fine - flush_tlb_range() may have no
    need to bother playing with page tables, but it can do so safely; again,
    this caller is the sole exception - everything else either has exclusive
    ->mmap_sem on the mm in question, or mm->page_table_lock is held.
    Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    cd2934a3
hugetlb.c 76.9 KB