diff options
author | Avi Kivity <avi@qumranet.com> | 2007-03-04 07:24:03 -0500 |
---|---|---|
committer | Avi Kivity <avi@qumranet.com> | 2007-05-03 03:52:24 -0400 |
commit | 1b19f3e61d7e1edb395dd64bf7d63621a37af8ca (patch) | |
tree | 52d90cc6e505f84ec741770950f4f07be45b7fba /drivers | |
parent | 8eb7d334bd8e693340ee198280f7d45035cdab8c (diff) |
KVM: Add a special exit reason when exiting due to an interrupt
This is redundant, as we also return -EINTR from the ioctl, but it
allows us to examine the exit_reason field on resume without seeing
old data.
Signed-off-by: Avi Kivity <avi@qumranet.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/kvm/svm.c | 2 | ||||
-rw-r--r-- | drivers/kvm/vmx.c | 2 |
2 files changed, 4 insertions, 0 deletions
diff --git a/drivers/kvm/svm.c b/drivers/kvm/svm.c index b09928f14219..0311665e3c83 100644 --- a/drivers/kvm/svm.c +++ b/drivers/kvm/svm.c | |||
@@ -1619,12 +1619,14 @@ again: | |||
1619 | if (signal_pending(current)) { | 1619 | if (signal_pending(current)) { |
1620 | ++kvm_stat.signal_exits; | 1620 | ++kvm_stat.signal_exits; |
1621 | post_kvm_run_save(vcpu, kvm_run); | 1621 | post_kvm_run_save(vcpu, kvm_run); |
1622 | kvm_run->exit_reason = KVM_EXIT_INTR; | ||
1622 | return -EINTR; | 1623 | return -EINTR; |
1623 | } | 1624 | } |
1624 | 1625 | ||
1625 | if (dm_request_for_irq_injection(vcpu, kvm_run)) { | 1626 | if (dm_request_for_irq_injection(vcpu, kvm_run)) { |
1626 | ++kvm_stat.request_irq_exits; | 1627 | ++kvm_stat.request_irq_exits; |
1627 | post_kvm_run_save(vcpu, kvm_run); | 1628 | post_kvm_run_save(vcpu, kvm_run); |
1629 | kvm_run->exit_reason = KVM_EXIT_INTR; | ||
1628 | return -EINTR; | 1630 | return -EINTR; |
1629 | } | 1631 | } |
1630 | kvm_resched(vcpu); | 1632 | kvm_resched(vcpu); |
diff --git a/drivers/kvm/vmx.c b/drivers/kvm/vmx.c index cf9568fbe8a5..e69bab6d811d 100644 --- a/drivers/kvm/vmx.c +++ b/drivers/kvm/vmx.c | |||
@@ -1941,12 +1941,14 @@ again: | |||
1941 | if (signal_pending(current)) { | 1941 | if (signal_pending(current)) { |
1942 | ++kvm_stat.signal_exits; | 1942 | ++kvm_stat.signal_exits; |
1943 | post_kvm_run_save(vcpu, kvm_run); | 1943 | post_kvm_run_save(vcpu, kvm_run); |
1944 | kvm_run->exit_reason = KVM_EXIT_INTR; | ||
1944 | return -EINTR; | 1945 | return -EINTR; |
1945 | } | 1946 | } |
1946 | 1947 | ||
1947 | if (dm_request_for_irq_injection(vcpu, kvm_run)) { | 1948 | if (dm_request_for_irq_injection(vcpu, kvm_run)) { |
1948 | ++kvm_stat.request_irq_exits; | 1949 | ++kvm_stat.request_irq_exits; |
1949 | post_kvm_run_save(vcpu, kvm_run); | 1950 | post_kvm_run_save(vcpu, kvm_run); |
1951 | kvm_run->exit_reason = KVM_EXIT_INTR; | ||
1950 | return -EINTR; | 1952 | return -EINTR; |
1951 | } | 1953 | } |
1952 | 1954 | ||