diff options
Diffstat (limited to 'arch/powerpc/kvm/booke_interrupts.S')
-rw-r--r-- | arch/powerpc/kvm/booke_interrupts.S | 17 |
1 files changed, 3 insertions, 14 deletions
diff --git a/arch/powerpc/kvm/booke_interrupts.S b/arch/powerpc/kvm/booke_interrupts.S index 8eaba2613ffd..3e88dfa1dbe4 100644 --- a/arch/powerpc/kvm/booke_interrupts.S +++ b/arch/powerpc/kvm/booke_interrupts.S | |||
@@ -342,26 +342,15 @@ lightweight_exit: | |||
342 | andc r6, r5, r6 | 342 | andc r6, r5, r6 |
343 | mtmsr r6 | 343 | mtmsr r6 |
344 | 344 | ||
345 | /* Save the host's non-pinned TLB mappings, and load the guest mappings | 345 | /* Load the guest mappings, leaving the host's "pinned" kernel mappings |
346 | * over them. Leave the host's "pinned" kernel mappings in place. */ | 346 | * in place. */ |
347 | /* XXX optimization: use generation count to avoid swapping unmodified | 347 | /* XXX optimization: load only modified guest entries. */ |
348 | * entries. */ | ||
349 | mfspr r10, SPRN_MMUCR /* Save host MMUCR. */ | 348 | mfspr r10, SPRN_MMUCR /* Save host MMUCR. */ |
350 | lis r8, tlb_44x_hwater@ha | 349 | lis r8, tlb_44x_hwater@ha |
351 | lwz r8, tlb_44x_hwater@l(r8) | 350 | lwz r8, tlb_44x_hwater@l(r8) |
352 | addi r3, r4, VCPU_HOST_TLB - 4 | ||
353 | addi r9, r4, VCPU_SHADOW_TLB - 4 | 351 | addi r9, r4, VCPU_SHADOW_TLB - 4 |
354 | li r6, 0 | 352 | li r6, 0 |
355 | 1: | 353 | 1: |
356 | /* Save host entry. */ | ||
357 | tlbre r7, r6, PPC44x_TLB_PAGEID | ||
358 | mfspr r5, SPRN_MMUCR | ||
359 | stwu r5, 4(r3) | ||
360 | stwu r7, 4(r3) | ||
361 | tlbre r7, r6, PPC44x_TLB_XLAT | ||
362 | stwu r7, 4(r3) | ||
363 | tlbre r7, r6, PPC44x_TLB_ATTRIB | ||
364 | stwu r7, 4(r3) | ||
365 | /* Load guest entry. */ | 354 | /* Load guest entry. */ |
366 | lwzu r7, 4(r9) | 355 | lwzu r7, 4(r9) |
367 | mtspr SPRN_MMUCR, r7 | 356 | mtspr SPRN_MMUCR, r7 |