diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2018-03-23 13:21:49 -0400 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2018-03-23 13:21:49 -0400 |
commit | e13c2ac512373d7b108ca534249b76e0da1e3334 (patch) | |
tree | 29e5e2b7698958b6ffc7410906b81e39a291b662 | |
parent | daaf216c06fba4ee4dc3f62715667da929d68774 (diff) | |
parent | cda4a14733138b8f15b0b69d97ec198dc41eccae (diff) |
Merge tag 'kvm-ppc-fixes-4.16-3' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc into kvm-master
PPC KVM fix -
Fix a bug causing occasional machine check exceptions on POWER8 hosts,
introduced in 4.16-rc1.
-rw-r--r-- | arch/powerpc/kvm/book3s_hv_rmhandlers.S | 35 |
1 files changed, 18 insertions, 17 deletions
diff --git a/arch/powerpc/kvm/book3s_hv_rmhandlers.S b/arch/powerpc/kvm/book3s_hv_rmhandlers.S index d33264697a31..f86a20270e50 100644 --- a/arch/powerpc/kvm/book3s_hv_rmhandlers.S +++ b/arch/powerpc/kvm/book3s_hv_rmhandlers.S | |||
@@ -1557,6 +1557,24 @@ mc_cont: | |||
1557 | ptesync | 1557 | ptesync |
1558 | 3: stw r5,VCPU_SLB_MAX(r9) | 1558 | 3: stw r5,VCPU_SLB_MAX(r9) |
1559 | 1559 | ||
1560 | /* load host SLB entries */ | ||
1561 | BEGIN_MMU_FTR_SECTION | ||
1562 | b 0f | ||
1563 | END_MMU_FTR_SECTION_IFSET(MMU_FTR_TYPE_RADIX) | ||
1564 | ld r8,PACA_SLBSHADOWPTR(r13) | ||
1565 | |||
1566 | .rept SLB_NUM_BOLTED | ||
1567 | li r3, SLBSHADOW_SAVEAREA | ||
1568 | LDX_BE r5, r8, r3 | ||
1569 | addi r3, r3, 8 | ||
1570 | LDX_BE r6, r8, r3 | ||
1571 | andis. r7,r5,SLB_ESID_V@h | ||
1572 | beq 1f | ||
1573 | slbmte r6,r5 | ||
1574 | 1: addi r8,r8,16 | ||
1575 | .endr | ||
1576 | 0: | ||
1577 | |||
1560 | guest_bypass: | 1578 | guest_bypass: |
1561 | stw r12, STACK_SLOT_TRAP(r1) | 1579 | stw r12, STACK_SLOT_TRAP(r1) |
1562 | mr r3, r12 | 1580 | mr r3, r12 |
@@ -2018,23 +2036,6 @@ END_FTR_SECTION_IFSET(CPU_FTR_ARCH_300) | |||
2018 | mtspr SPRN_LPCR,r8 | 2036 | mtspr SPRN_LPCR,r8 |
2019 | isync | 2037 | isync |
2020 | 48: | 2038 | 48: |
2021 | /* load host SLB entries */ | ||
2022 | BEGIN_MMU_FTR_SECTION | ||
2023 | b 0f | ||
2024 | END_MMU_FTR_SECTION_IFSET(MMU_FTR_TYPE_RADIX) | ||
2025 | ld r8,PACA_SLBSHADOWPTR(r13) | ||
2026 | |||
2027 | .rept SLB_NUM_BOLTED | ||
2028 | li r3, SLBSHADOW_SAVEAREA | ||
2029 | LDX_BE r5, r8, r3 | ||
2030 | addi r3, r3, 8 | ||
2031 | LDX_BE r6, r8, r3 | ||
2032 | andis. r7,r5,SLB_ESID_V@h | ||
2033 | beq 1f | ||
2034 | slbmte r6,r5 | ||
2035 | 1: addi r8,r8,16 | ||
2036 | .endr | ||
2037 | 0: | ||
2038 | #ifdef CONFIG_KVM_BOOK3S_HV_EXIT_TIMING | 2039 | #ifdef CONFIG_KVM_BOOK3S_HV_EXIT_TIMING |
2039 | /* Finish timing, if we have a vcpu */ | 2040 | /* Finish timing, if we have a vcpu */ |
2040 | ld r4, HSTATE_KVM_VCPU(r13) | 2041 | ld r4, HSTATE_KVM_VCPU(r13) |