diff options
-rw-r--r-- | protos/src/plugin.proto | 4 | ||||
-rw-r--r-- | src/plugin/vcpu.rs | 5 |
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 |