aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc
diff options
context:
space:
mode:
authorPaul Mackerras <paulus@samba.org>2014-01-08 05:25:22 -0500
committerAlexander Graf <agraf@suse.de>2014-01-27 10:01:02 -0500
commitca252055130b6a1affa12df94a4694c1aafc2a6c (patch)
tree57c86f8aaf55ba182dc24d3e0d23a18396918e65 /arch/powerpc
parentb005255e12a311d2c87ea70a7c7b192b2187c22c (diff)
KVM: PPC: Book3S HV: Flush the correct number of TLB sets on POWER8
POWER8 has 512 sets in the TLB, compared to 128 for POWER7, so we need to do more tlbiel instructions when flushing the TLB on POWER8. Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Alexander Graf <agraf@suse.de>
Diffstat (limited to 'arch/powerpc')
-rw-r--r--arch/powerpc/kvm/book3s_hv_rmhandlers.S8
1 files changed, 7 insertions, 1 deletions
diff --git a/arch/powerpc/kvm/book3s_hv_rmhandlers.S b/arch/powerpc/kvm/book3s_hv_rmhandlers.S
index 691dd1ef555b..19f8819f90fa 100644
--- a/arch/powerpc/kvm/book3s_hv_rmhandlers.S
+++ b/arch/powerpc/kvm/book3s_hv_rmhandlers.S
@@ -430,7 +430,13 @@ END_FTR_SECTION_IFSET(CPU_FTR_ARCH_201)
430 andc r7,r7,r0 430 andc r7,r7,r0
431 stdcx. r7,0,r6 431 stdcx. r7,0,r6
432 bne 23b 432 bne 23b
433 li r6,128 /* and flush the TLB */ 433 /* Flush the TLB of any entries for this LPID */
434 /* use arch 2.07S as a proxy for POWER8 */
435BEGIN_FTR_SECTION
436 li r6,512 /* POWER8 has 512 sets */
437FTR_SECTION_ELSE
438 li r6,128 /* POWER7 has 128 sets */
439ALT_FTR_SECTION_END_IFSET(CPU_FTR_ARCH_207S)
434 mtctr r6 440 mtctr r6
435 li r7,0x800 /* IS field = 0b10 */ 441 li r7,0x800 /* IS field = 0b10 */
436 ptesync 442 ptesync