diff options
Diffstat (limited to 'arch/powerpc/kvm/book3s_hv_rmhandlers.S')
-rw-r--r-- | arch/powerpc/kvm/book3s_hv_rmhandlers.S | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/arch/powerpc/kvm/book3s_hv_rmhandlers.S b/arch/powerpc/kvm/book3s_hv_rmhandlers.S index ffbb871c2bd8..b031f932c0cc 100644 --- a/arch/powerpc/kvm/book3s_hv_rmhandlers.S +++ b/arch/powerpc/kvm/book3s_hv_rmhandlers.S | |||
@@ -242,6 +242,12 @@ kvm_novcpu_exit: | |||
242 | */ | 242 | */ |
243 | .globl kvm_start_guest | 243 | .globl kvm_start_guest |
244 | kvm_start_guest: | 244 | kvm_start_guest: |
245 | |||
246 | /* Set runlatch bit the minute you wake up from nap */ | ||
247 | mfspr r1, SPRN_CTRLF | ||
248 | ori r1, r1, 1 | ||
249 | mtspr SPRN_CTRLT, r1 | ||
250 | |||
245 | ld r2,PACATOC(r13) | 251 | ld r2,PACATOC(r13) |
246 | 252 | ||
247 | li r0,KVM_HWTHREAD_IN_KVM | 253 | li r0,KVM_HWTHREAD_IN_KVM |
@@ -309,6 +315,11 @@ kvm_no_guest: | |||
309 | li r0, KVM_HWTHREAD_IN_NAP | 315 | li r0, KVM_HWTHREAD_IN_NAP |
310 | stb r0, HSTATE_HWTHREAD_STATE(r13) | 316 | stb r0, HSTATE_HWTHREAD_STATE(r13) |
311 | kvm_do_nap: | 317 | kvm_do_nap: |
318 | /* Clear the runlatch bit before napping */ | ||
319 | mfspr r2, SPRN_CTRLF | ||
320 | clrrdi r2, r2, 1 | ||
321 | mtspr SPRN_CTRLT, r2 | ||
322 | |||
312 | li r3, LPCR_PECE0 | 323 | li r3, LPCR_PECE0 |
313 | mfspr r4, SPRN_LPCR | 324 | mfspr r4, SPRN_LPCR |
314 | rlwimi r4, r3, 0, LPCR_PECE0 | LPCR_PECE1 | 325 | rlwimi r4, r3, 0, LPCR_PECE0 | LPCR_PECE1 |
@@ -1999,8 +2010,13 @@ END_FTR_SECTION_IFCLR(CPU_FTR_ARCH_206) | |||
1999 | 2010 | ||
2000 | /* | 2011 | /* |
2001 | * Take a nap until a decrementer or external or doobell interrupt | 2012 | * Take a nap until a decrementer or external or doobell interrupt |
2002 | * occurs, with PECE1, PECE0 and PECEDP set in LPCR | 2013 | * occurs, with PECE1, PECE0 and PECEDP set in LPCR. Also clear the |
2014 | * runlatch bit before napping. | ||
2003 | */ | 2015 | */ |
2016 | mfspr r2, SPRN_CTRLF | ||
2017 | clrrdi r2, r2, 1 | ||
2018 | mtspr SPRN_CTRLT, r2 | ||
2019 | |||
2004 | li r0,1 | 2020 | li r0,1 |
2005 | stb r0,HSTATE_HWTHREAD_REQ(r13) | 2021 | stb r0,HSTATE_HWTHREAD_REQ(r13) |
2006 | mfspr r5,SPRN_LPCR | 2022 | mfspr r5,SPRN_LPCR |