android_kernel_google_msm/arch/powerpc/kvm
Alexander Graf b4433a7cce KVM: PPC: Implement 'skip instruction' mode
To fetch the last instruction we were interrupted on, we enable DR in early
exit code, where we are still in a very transitional phase between guest
and host state.

Most of the time this seemed to work, but another CPU can easily flush our
TLB and HTAB which makes us go in the Linux page fault handler which totally
breaks because we still use the guest's SLB entries.

To work around that, let's introduce a second KVM guest mode that defines
that whenever we get a trap, we don't call the Linux handler or go into
the KVM exit code, but just jump over the faulting instruction.

That way a potentially bad lwz doesn't trigger any faults and we can later
on interpret the invalid instruction we fetched as "fetch didn't work".

Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Avi Kivity <avi@redhat.com>
2010-03-01 12:35:48 -03:00
..
44x.c KVM: powerpc: fix some init/exit annotations 2009-09-10 08:32:44 +03:00
44x_emulate.c KVM: PPC: Use accessor functions for GPR access 2010-03-01 12:35:47 -03:00
44x_tlb.c KVM: PPC: Add helpers for CR, XER 2010-03-01 12:35:47 -03:00
44x_tlb.h
book3s.c KVM: PPC: Use PACA backed shadow vcpu 2010-03-01 12:35:48 -03:00
book3s_32_mmu.c Add book3s_32 guest MMU 2009-11-05 16:49:55 +11:00
book3s_64_emulate.c KVM: PPC: Use accessor functions for GPR access 2010-03-01 12:35:47 -03:00
book3s_64_exports.c Export KVM symbols for module 2009-11-05 16:50:25 +11:00
book3s_64_interrupts.S KVM: PPC: Use PACA backed shadow vcpu 2010-03-01 12:35:48 -03:00
book3s_64_mmu.c KVM: powerpc: Fix mtsrin in book3s_64 mmu 2009-12-27 13:36:34 -02:00
book3s_64_mmu_host.c Add book3s_64 Host MMU handling 2009-11-05 16:49:54 +11:00
book3s_64_rmhandlers.S KVM: PPC: Implement 'skip instruction' mode 2010-03-01 12:35:48 -03:00
book3s_64_slb.S KVM: PPC: Implement 'skip instruction' mode 2010-03-01 12:35:48 -03:00
booke.c KVM: PPC: Add helpers for CR, XER 2010-03-01 12:35:47 -03:00
booke.h
booke_emulate.c KVM: PPC: Use accessor functions for GPR access 2010-03-01 12:35:47 -03:00
booke_interrupts.S powerpc: Use names rather than numbers for SPRGs (v2) 2009-08-20 10:12:27 +10:00
e500.c KVM: ppc: e500: Directly pass pvr to guest 2009-09-10 08:32:47 +03:00
e500_emulate.c KVM: PPC: Use accessor functions for GPR access 2010-03-01 12:35:47 -03:00
e500_tlb.c KVM: PPC: Use accessor functions for GPR access 2010-03-01 12:35:47 -03:00
e500_tlb.h KVM: ppc: e500: Move to Book-3e MMU definitions 2009-09-10 08:32:47 +03:00
emulate.c KVM: PPC: Implement 'skip instruction' mode 2010-03-01 12:35:48 -03:00
Kconfig KVM: Add KVM_MMIO kconfig item 2010-03-01 12:35:41 -03:00
Makefile Include Book3s_64 target in buildsystem 2009-11-05 16:50:26 +11:00
powerpc.c KVM: PPC: Use accessor functions for GPR access 2010-03-01 12:35:47 -03:00
timing.c powerpc/kvm: Fix non-modular build 2009-11-05 17:17:12 +11:00
timing.h KVM: powerpc: Fix BUILD_BUG_ON condition 2009-12-03 09:32:22 +02:00
trace.h Fix trace.h 2009-11-05 16:50:27 +11:00