Skip to content

Commit ce8b2a6

Browse files
committed
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 859b0b4 commit ce8b2a6

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
@@ -819,21 +819,11 @@ impl Vmm {
819819
let fault_request_json =
820820
serde_json::to_string(&fault_request).expect("Failed to serialize fault request");
821821

822-
let written = self
823-
.uffd_socket
822+
self.uffd_socket
824823
.as_ref()
825824
.expect("Uffd socket is not set")
826-
.write(fault_request_json.as_bytes())
825+
.write_all(fault_request_json.as_bytes())
827826
.expect("Failed to write to uffd socket");
828-
829-
if written != fault_request_json.len() {
830-
panic!(
831-
"Failed to write the entire fault request to the uffd socket: expected {}, \
832-
written {}",
833-
fault_request_json.len(),
834-
written
835-
);
836-
}
837827
}
838828

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

0 commit comments

Comments
 (0)