diff options
| author | Bharat Bhushan <Bharat.Bhushan@freescale.com> | 2013-01-15 17:20:42 -0500 |
|---|---|---|
| committer | Alexander Graf <agraf@suse.de> | 2013-02-13 06:56:39 -0500 |
| commit | ffe129ecd79779221fdb03305049ec8b5a8beb0f (patch) | |
| tree | 0f4ebfb6eb4e3e5255010d1e36625813374c98e9 | |
| parent | dd92d6f2749c43ebab91c4762a1bc79e6523e936 (diff) | |
KVM: PPC: booke: use vcpu reference from thread_struct
Like other places, use thread_struct to get vcpu reference.
Signed-off-by: Bharat Bhushan <bharat.bhushan@freescale.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
| -rw-r--r-- | arch/powerpc/include/asm/reg.h | 2 | ||||
| -rw-r--r-- | arch/powerpc/kernel/asm-offsets.c | 2 | ||||
| -rw-r--r-- | arch/powerpc/kvm/booke_interrupts.S | 6 |
3 files changed, 3 insertions, 7 deletions
diff --git a/arch/powerpc/include/asm/reg.h b/arch/powerpc/include/asm/reg.h index 97d37278ea2d..11ae3d8ba3a2 100644 --- a/arch/powerpc/include/asm/reg.h +++ b/arch/powerpc/include/asm/reg.h | |||
| @@ -919,8 +919,6 @@ | |||
| 919 | #define SPRN_SPRG_RSCRATCH_DBG SPRN_SPRG9 | 919 | #define SPRN_SPRG_RSCRATCH_DBG SPRN_SPRG9 |
| 920 | #define SPRN_SPRG_WSCRATCH_DBG SPRN_SPRG9 | 920 | #define SPRN_SPRG_WSCRATCH_DBG SPRN_SPRG9 |
| 921 | #endif | 921 | #endif |
| 922 | #define SPRN_SPRG_RVCPU SPRN_SPRG1 | ||
| 923 | #define SPRN_SPRG_WVCPU SPRN_SPRG1 | ||
| 924 | #endif | 922 | #endif |
| 925 | 923 | ||
| 926 | #ifdef CONFIG_8xx | 924 | #ifdef CONFIG_8xx |
diff --git a/arch/powerpc/kernel/asm-offsets.c b/arch/powerpc/kernel/asm-offsets.c index 4e23ba2f3ca7..46f6afd2172a 100644 --- a/arch/powerpc/kernel/asm-offsets.c +++ b/arch/powerpc/kernel/asm-offsets.c | |||
| @@ -117,7 +117,7 @@ int main(void) | |||
| 117 | #ifdef CONFIG_KVM_BOOK3S_32_HANDLER | 117 | #ifdef CONFIG_KVM_BOOK3S_32_HANDLER |
| 118 | DEFINE(THREAD_KVM_SVCPU, offsetof(struct thread_struct, kvm_shadow_vcpu)); | 118 | DEFINE(THREAD_KVM_SVCPU, offsetof(struct thread_struct, kvm_shadow_vcpu)); |
| 119 | #endif | 119 | #endif |
| 120 | #ifdef CONFIG_KVM_BOOKE_HV | 120 | #if defined(CONFIG_KVM) && defined(CONFIG_BOOKE) |
| 121 | DEFINE(THREAD_KVM_VCPU, offsetof(struct thread_struct, kvm_vcpu)); | 121 | DEFINE(THREAD_KVM_VCPU, offsetof(struct thread_struct, kvm_vcpu)); |
| 122 | #endif | 122 | #endif |
| 123 | 123 | ||
diff --git a/arch/powerpc/kvm/booke_interrupts.S b/arch/powerpc/kvm/booke_interrupts.S index bb46b32f9813..ca16d57f7686 100644 --- a/arch/powerpc/kvm/booke_interrupts.S +++ b/arch/powerpc/kvm/booke_interrupts.S | |||
| @@ -56,7 +56,8 @@ | |||
| 56 | _GLOBAL(kvmppc_handler_\ivor_nr) | 56 | _GLOBAL(kvmppc_handler_\ivor_nr) |
| 57 | /* Get pointer to vcpu and record exit number. */ | 57 | /* Get pointer to vcpu and record exit number. */ |
| 58 | mtspr \scratch , r4 | 58 | mtspr \scratch , r4 |
| 59 | mfspr r4, SPRN_SPRG_RVCPU | 59 | mfspr r4, SPRN_SPRG_THREAD |
| 60 | lwz r4, THREAD_KVM_VCPU(r4) | ||
| 60 | stw r3, VCPU_GPR(R3)(r4) | 61 | stw r3, VCPU_GPR(R3)(r4) |
| 61 | stw r5, VCPU_GPR(R5)(r4) | 62 | stw r5, VCPU_GPR(R5)(r4) |
| 62 | stw r6, VCPU_GPR(R6)(r4) | 63 | stw r6, VCPU_GPR(R6)(r4) |
| @@ -402,9 +403,6 @@ lightweight_exit: | |||
| 402 | lwz r8, kvmppc_booke_handlers@l(r8) | 403 | lwz r8, kvmppc_booke_handlers@l(r8) |
| 403 | mtspr SPRN_IVPR, r8 | 404 | mtspr SPRN_IVPR, r8 |
| 404 | 405 | ||
| 405 | /* Save vcpu pointer for the exception handlers. */ | ||
| 406 | mtspr SPRN_SPRG_WVCPU, r4 | ||
| 407 | |||
| 408 | lwz r5, VCPU_SHARED(r4) | 406 | lwz r5, VCPU_SHARED(r4) |
| 409 | 407 | ||
| 410 | /* Can't switch the stack pointer until after IVPR is switched, | 408 | /* Can't switch the stack pointer until after IVPR is switched, |
