diff options
author | Avi Kivity <avi@redhat.com> | 2011-04-20 08:43:05 -0400 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2011-05-22 08:39:17 -0400 |
commit | 6c3287f7c5050076b554145f11bdba058de287d1 (patch) | |
tree | a2acca73938e6937cbad6cc34bd8586e91973030 /arch/x86/kvm/x86.c | |
parent | 3cb16fe78ce91991a876c74fc5dc99419b737b7a (diff) |
KVM: x86 emulator: add new ->halt() callback
Instead of reaching into vcpu internals.
Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch/x86/kvm/x86.c')
-rw-r--r-- | arch/x86/kvm/x86.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index 8af49b3df675..2246cf1a4ee0 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c | |||
@@ -4351,6 +4351,11 @@ static int emulator_set_msr(struct x86_emulate_ctxt *ctxt, | |||
4351 | return kvm_set_msr(emul_to_vcpu(ctxt), msr_index, data); | 4351 | return kvm_set_msr(emul_to_vcpu(ctxt), msr_index, data); |
4352 | } | 4352 | } |
4353 | 4353 | ||
4354 | static void emulator_halt(struct x86_emulate_ctxt *ctxt) | ||
4355 | { | ||
4356 | emul_to_vcpu(ctxt)->arch.halt_request = 1; | ||
4357 | } | ||
4358 | |||
4354 | static void emulator_get_fpu(struct x86_emulate_ctxt *ctxt) | 4359 | static void emulator_get_fpu(struct x86_emulate_ctxt *ctxt) |
4355 | { | 4360 | { |
4356 | preempt_disable(); | 4361 | preempt_disable(); |
@@ -4400,6 +4405,7 @@ static struct x86_emulate_ops emulate_ops = { | |||
4400 | .set_dr = emulator_set_dr, | 4405 | .set_dr = emulator_set_dr, |
4401 | .set_msr = emulator_set_msr, | 4406 | .set_msr = emulator_set_msr, |
4402 | .get_msr = emulator_get_msr, | 4407 | .get_msr = emulator_get_msr, |
4408 | .halt = emulator_halt, | ||
4403 | .get_fpu = emulator_get_fpu, | 4409 | .get_fpu = emulator_get_fpu, |
4404 | .put_fpu = emulator_put_fpu, | 4410 | .put_fpu = emulator_put_fpu, |
4405 | .intercept = emulator_intercept, | 4411 | .intercept = emulator_intercept, |