diff options
-rw-r--r-- | arch/powerpc/kvm/bookehv_interrupts.S | 26 |
1 files changed, 1 insertions, 25 deletions
diff --git a/arch/powerpc/kvm/bookehv_interrupts.S b/arch/powerpc/kvm/bookehv_interrupts.S index a1712b818a5f..6ff448046301 100644 --- a/arch/powerpc/kvm/bookehv_interrupts.S +++ b/arch/powerpc/kvm/bookehv_interrupts.S | |||
@@ -29,7 +29,6 @@ | |||
29 | #include <asm/asm-compat.h> | 29 | #include <asm/asm-compat.h> |
30 | #include <asm/asm-offsets.h> | 30 | #include <asm/asm-offsets.h> |
31 | #include <asm/bitsperlong.h> | 31 | #include <asm/bitsperlong.h> |
32 | #include <asm/thread_info.h> | ||
33 | 32 | ||
34 | #ifdef CONFIG_64BIT | 33 | #ifdef CONFIG_64BIT |
35 | #include <asm/exception-64e.h> | 34 | #include <asm/exception-64e.h> |
@@ -164,32 +163,9 @@ | |||
164 | PPC_STL r30, VCPU_GPR(R30)(r4) | 163 | PPC_STL r30, VCPU_GPR(R30)(r4) |
165 | PPC_STL r31, VCPU_GPR(R31)(r4) | 164 | PPC_STL r31, VCPU_GPR(R31)(r4) |
166 | mtspr SPRN_EPLC, r8 | 165 | mtspr SPRN_EPLC, r8 |
167 | |||
168 | /* disable preemption, so we are sure we hit the fixup handler */ | ||
169 | CURRENT_THREAD_INFO(r8, r1) | ||
170 | li r7, 1 | ||
171 | stw r7, TI_PREEMPT(r8) | ||
172 | |||
173 | isync | 166 | isync |
174 | 167 | lwepx r9, 0, r5 | |
175 | /* | ||
176 | * In case the read goes wrong, we catch it and write an invalid value | ||
177 | * in LAST_INST instead. | ||
178 | */ | ||
179 | 1: lwepx r9, 0, r5 | ||
180 | 2: | ||
181 | .section .fixup, "ax" | ||
182 | 3: li r9, KVM_INST_FETCH_FAILED | ||
183 | b 2b | ||
184 | .previous | ||
185 | .section __ex_table,"a" | ||
186 | PPC_LONG_ALIGN | ||
187 | PPC_LONG 1b,3b | ||
188 | .previous | ||
189 | |||
190 | mtspr SPRN_EPLC, r3 | 168 | mtspr SPRN_EPLC, r3 |
191 | li r7, 0 | ||
192 | stw r7, TI_PREEMPT(r8) | ||
193 | stw r9, VCPU_LAST_INST(r4) | 169 | stw r9, VCPU_LAST_INST(r4) |
194 | .endif | 170 | .endif |
195 | 171 | ||