Skip to content

Commit 93dff6b

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 <kalyazin@amazon.com>
1 parent 15fa6ad commit 93dff6b

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

712-
let written = self
713-
.uffd_socket
712+
self.uffd_socket
714713
.as_ref()
715714
.expect("Uffd socket is not set")
716-
.write(fault_request_json.as_bytes())
715+
.write_all(fault_request_json.as_bytes())
717716
.expect("Failed to write to uffd socket");
718-
719-
if written != fault_request_json.len() {
720-
panic!(
721-
"Failed to write the entire fault request to the uffd socket: expected {}, \
722-
written {}",
723-
fault_request_json.len(),
724-
written
725-
);
726-
}
727717
}
728718

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

0 commit comments

Comments
 (0)