diff options
author | Ingo Molnar <mingo@kernel.org> | 2016-07-20 09:46:42 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2016-07-20 09:46:42 +0200 |
commit | 4fffe71dd913cca5532da594e2f48a0db6b494dc (patch) | |
tree | 6e0dc83582382506e8b70760d8b59a50d93bfa5a /arch/mips/kvm/mips.c | |
parent | 4b3b234f434d440fcd749b9636131b76e2ce561e (diff) | |
parent | 47ef4ad2684d380dd6d596140fb79395115c3950 (diff) | |
download | linux-4fffe71dd913cca5532da594e2f48a0db6b494dc.tar.gz linux-4fffe71dd913cca5532da594e2f48a0db6b494dc.tar.xz |
Merge branch 'linus' into x86/cpu, to pick up fixes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/mips/kvm/mips.c')
-rw-r--r-- | arch/mips/kvm/mips.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/arch/mips/kvm/mips.c b/arch/mips/kvm/mips.c index dc052fb5c7a2..44da5259f390 100644 --- a/arch/mips/kvm/mips.c +++ b/arch/mips/kvm/mips.c @@ -315,6 +315,15 @@ struct kvm_vcpu *kvm_arch_vcpu_create(struct kvm *kvm, unsigned int id) memcpy(gebase + offset, mips32_GuestException, mips32_GuestExceptionEnd - mips32_GuestException); +#ifdef MODULE + offset += mips32_GuestExceptionEnd - mips32_GuestException; + memcpy(gebase + offset, (char *)__kvm_mips_vcpu_run, + __kvm_mips_vcpu_run_end - (char *)__kvm_mips_vcpu_run); + vcpu->arch.vcpu_run = gebase + offset; +#else + vcpu->arch.vcpu_run = __kvm_mips_vcpu_run; +#endif + /* Invalidate the icache for these ranges */ local_flush_icache_range((unsigned long)gebase, (unsigned long)gebase + ALIGN(size, PAGE_SIZE)); @@ -404,7 +413,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *run) /* Disable hardware page table walking while in guest */ htw_stop(); - r = __kvm_mips_vcpu_run(run, vcpu); + r = vcpu->arch.vcpu_run(run, vcpu); /* Re-enable HTW before enabling interrupts */ htw_start(); |