]> git.baikalelectronics.ru Git - kernel.git/commit
sparc64: Fix regression in pmdp_invalidate().
authorDavid S. Miller <davem@davemloft.net>
Thu, 15 Mar 2018 21:18:00 +0000 (14:18 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 15 Mar 2018 21:18:00 +0000 (14:18 -0700)
commite7f122207fb9072b199c5f87ffa59a1c362bd719
tree44556a6711e7cfd44a9e9899eb077c49012872cd
parent1df81c0660a66c6c7b416d3fea6f774362b67336
sparc64: Fix regression in pmdp_invalidate().

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: a0dabf568c0b ("sparc64: update pmdp_invalidate() to return old pmd value")
Signed-off-by: David S. Miller <davem@davemloft.net>
arch/sparc/mm/tlb.c