]> git.baikalelectronics.ru Git - kernel.git/commit
sparc64: Fix regression in non-hypervisor TLB flush xcall
authorJames Clarke <jrtc27@jrtc27.com>
Wed, 29 May 2019 21:31:31 +0000 (22:31 +0100)
committerDavid S. Miller <davem@davemloft.net>
Mon, 3 Jun 2019 05:13:40 +0000 (22:13 -0700)
commitb38f90c6830d20bb9bc4eb7c88b531effaf73223
tree45fa45c56bd6b0f364aa8a222f92f3585a8dd94a
parent31750888ad4ce9d2a30f744c4c2ab30aee07f569
sparc64: Fix regression in non-hypervisor TLB flush xcall

Previously, %g2 would end up with the value PAGE_SIZE, but after the
commit mentioned below it ends up with the value 1 due to being reused
for a different purpose. We need it to be PAGE_SIZE as we use it to step
through pages in our demap loop, otherwise we set different flags in the
low 12 bits of the address written to, thereby doing things other than a
nucleus page flush.

Fixes: 9bec28e6964a ("sparc64: Handle extremely large kernel TLB range flushes more gracefully.")
Reported-by: Meelis Roos <mroos@linux.ee>
Tested-by: Meelis Roos <mroos@linux.ee>
Signed-off-by: James Clarke <jrtc27@jrtc27.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
arch/sparc/mm/ultra.S