summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--protos/src/plugin.proto4
-rw-r--r--src/plugin/vcpu.rs5
2 files changed, 4 insertions, 5 deletions
diff --git a/protos/src/plugin.proto b/protos/src/plugin.proto
index de76089..332ed5d 100644
--- a/protos/src/plugin.proto
+++ b/protos/src/plugin.proto
@@ -370,8 +370,6 @@ message VcpuResponse  {
         }
     }
 
-    message Resume {}
-
     message GetState {
         // The in memory representation of a struct kvm_regs, struct kvm_sregs,
         // struct kvm_fpu, struct kvm_debugregs, struct kvm_lapic_state,
@@ -399,7 +397,7 @@ message VcpuResponse  {
     // VcpuRequest.
     oneof message {
         Wait wait = 2;
-        Resume resume = 3;
+        // resume was 3 but no longer gets a reply.
         GetState get_state = 4;
         SetState set_state = 5;
         GetMsrs get_msrs = 6;
diff --git a/src/plugin/vcpu.rs b/src/plugin/vcpu.rs
index c9d811a..5ca27da 100644
--- a/src/plugin/vcpu.rs
+++ b/src/plugin/vcpu.rs
@@ -396,6 +396,7 @@ impl PluginVcpu {
         let mut do_recv = true;
         let mut resume_data = None;
         let mut response = VcpuResponse::new();
+        let mut send_response = true;
 
         // Typically a response is sent for every request received.  The odd (yet common)
         // case is when a resume request is received.  This function will skip sending
@@ -442,7 +443,7 @@ impl PluginVcpu {
                 self.wait_reason.set(wait_reason);
                 Err(SysError::new(EPROTO))
             } else if request.has_resume() {
-                response.mut_resume();
+                send_response = false;
                 resume_data = Some(request.take_resume().take_data());
                 Ok(())
             } else if request.has_get_state() {
@@ -540,7 +541,7 @@ impl PluginVcpu {
 
         // Send the response, except if it's a resume response (in which case
         // we'll go run the VM and afterwards send a wait response message).
-        if !response.has_resume() {
+        if send_response {
             let mut response_buffer = self.response_buffer.borrow_mut();
             response_buffer.clear();
             response