• David S. Miller's avatar
    sparc64: Fix regression in pmdp_invalidate(). · 24b71d18
    David S. Miller authored
    [ Upstream commit cfb61b5e ]
    
    pmdp_invalidate() was changed to update the pmd atomically
    (to not lose dirty/access bits) and return the original pmd
    value.
    
    However, in doing so, we lost a lot of the essential work that
    set_pmd_at() does, namely to update hugepage mapping counts and
    queuing up the batched TLB flush entry.
    
    Thus we were not flushing entries out of the TLB when making
    such PMD changes.
    
    Fix this by abstracting the accounting work of set_pmd_at() out into a
    separate function, and call it from pmdp_establish().
    
    Fixes: a8e654f0 ("sparc64: update pmdp_invalidate() to return old pmd value")
    Signed-off-by: 's avatarDavid S. Miller <davem@davemloft.net>
    Signed-off-by: 's avatarSasha Levin <sashal@kernel.org>
    24b71d18
Name
Last commit
Last update
..
Makefile Loading commit data...
extable.c Loading commit data...
fault_32.c Loading commit data...
fault_64.c Loading commit data...
gup.c Loading commit data...
highmem.c Loading commit data...
hugetlbpage.c Loading commit data...
hypersparc.S Loading commit data...
init_32.c Loading commit data...
init_64.c Loading commit data...
init_64.h Loading commit data...
io-unit.c Loading commit data...
iommu.c Loading commit data...
leon_mm.c Loading commit data...
mm_32.h Loading commit data...
srmmu.c Loading commit data...
srmmu_access.S Loading commit data...
swift.S Loading commit data...
tlb.c Loading commit data...
tsb.c Loading commit data...
tsunami.S Loading commit data...
ultra.S Loading commit data...
viking.S Loading commit data...