Skip to content

Commit d091b0f

Browse files
kalyazinroypat
authored andcommitted
fix(vmm): write_all in process_vcpu_userfault
This is to make sure that we always write the entire FaultRequest message even if the syscall was interrupted. Signed-off-by: Nikita Kalyazin <[email protected]>
1 parent 5ef8e53 commit d091b0f

File tree

1 file changed

+2
-12
lines changed

1 file changed

+2
-12
lines changed

src/vmm/src/lib.rs

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -729,21 +729,11 @@ impl Vmm {
729729
let fault_request_json =
730730
serde_json::to_string(&fault_request).expect("Failed to serialize fault request");
731731

732-
let written = self
733-
.uffd_socket
732+
self.uffd_socket
734733
.as_ref()
735734
.expect("Uffd socket is not set")
736-
.write(fault_request_json.as_bytes())
735+
.write_all(fault_request_json.as_bytes())
737736
.expect("Failed to write to uffd socket");
738-
739-
if written != fault_request_json.len() {
740-
panic!(
741-
"Failed to write the entire fault request to the uffd socket: expected {}, \
742-
written {}",
743-
fault_request_json.len(),
744-
written
745-
);
746-
}
747737
}
748738

749739
fn active_event_in_uffd_socket(&self, source: RawFd, event_set: EventSet) -> bool {

0 commit comments

Comments
 (0)