summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--seccomp/x86_64/block_device.policy1
-rw-r--r--seccomp/x86_64/net_device.policy1
-rw-r--r--seccomp/x86_64/rng_device.policy1
-rw-r--r--seccomp/x86_64/vhost_net_device.policy1
-rw-r--r--seccomp/x86_64/vhost_vsock_device.policy1
-rw-r--r--seccomp/x86_64/wl_device.policy1
-rw-r--r--src/main.rs8
7 files changed, 12 insertions, 2 deletions
diff --git a/seccomp/x86_64/block_device.policy b/seccomp/x86_64/block_device.policy
index fa35ea3..a72c622 100644
--- a/seccomp/x86_64/block_device.policy
+++ b/seccomp/x86_64/block_device.policy
@@ -26,3 +26,4 @@ poll: 1
 getpid: 1
 # Allow PR_SET_NAME only.
 prctl: arg0 == 15
+restart_syscall: 1
diff --git a/seccomp/x86_64/net_device.policy b/seccomp/x86_64/net_device.policy
index 1718f4d..6820665 100644
--- a/seccomp/x86_64/net_device.policy
+++ b/seccomp/x86_64/net_device.policy
@@ -25,3 +25,4 @@ write: 1
 getpid: 1
 # Allow PR_SET_NAME only.
 prctl: arg0 == 15
+restart_syscall: 1
diff --git a/seccomp/x86_64/rng_device.policy b/seccomp/x86_64/rng_device.policy
index e320acf..4eeb7ed 100644
--- a/seccomp/x86_64/rng_device.policy
+++ b/seccomp/x86_64/rng_device.policy
@@ -25,3 +25,4 @@ poll: 1
 getpid: 1
 # Allow PR_SET_NAME only.
 prctl: arg0 == 15
+restart_syscall: 1
diff --git a/seccomp/x86_64/vhost_net_device.policy b/seccomp/x86_64/vhost_net_device.policy
index 02be1d5..d64dd81 100644
--- a/seccomp/x86_64/vhost_net_device.policy
+++ b/seccomp/x86_64/vhost_net_device.policy
@@ -42,3 +42,4 @@ write: 1
 getpid: 1
 # Allow PR_SET_NAME only.
 prctl: arg0 == 15
+restart_syscall: 1
diff --git a/seccomp/x86_64/vhost_vsock_device.policy b/seccomp/x86_64/vhost_vsock_device.policy
index cbbdae0..5b21d51 100644
--- a/seccomp/x86_64/vhost_vsock_device.policy
+++ b/seccomp/x86_64/vhost_vsock_device.policy
@@ -45,3 +45,4 @@ write: 1
 getpid: 1
 # Allow PR_SET_NAME only.
 prctl: arg0 == 15
+restart_syscall: 1
diff --git a/seccomp/x86_64/wl_device.policy b/seccomp/x86_64/wl_device.policy
index 7ec8220..c804357 100644
--- a/seccomp/x86_64/wl_device.policy
+++ b/seccomp/x86_64/wl_device.policy
@@ -36,3 +36,4 @@ ftruncate: 1
 lseek: 1
 # Allow PR_SET_NAME only.
 prctl: arg0 == 15
+restart_syscall: 1
diff --git a/src/main.rs b/src/main.rs
index ac7350a..da1a3ad 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -635,8 +635,12 @@ fn run_kvm(requests: Vec<VmRequest>,
                         }
                     }
                     Err(e) => {
-                        if e.errno() != libc::EAGAIN {
-                            break;
+                        match e.errno() {
+                            libc::EAGAIN | libc::EINTR => {},
+                            _ => {
+                                error!("vcpu hit unknown error: {:?}", e);
+                                break;
+                            }
                         }
                     }
                 }