diff --git a/vm-virtio/src/lib.rs b/vm-virtio/src/lib.rs index 0b7724ab4..903ba631f 100755 --- a/vm-virtio/src/lib.rs +++ b/vm-virtio/src/lib.rs @@ -180,6 +180,8 @@ pub enum Error { event: DeviceEventT, }, IoError(io::Error), + RegisterListener(io::Error), + UnregisterListener(io::Error), EpollCreateFd(io::Error), EpollCtl(io::Error), EpollWait(io::Error), diff --git a/vm-virtio/src/net.rs b/vm-virtio/src/net.rs index fdc1cc451..fe24f95ae 100644 --- a/vm-virtio/src/net.rs +++ b/vm-virtio/src/net.rs @@ -84,7 +84,7 @@ impl NetEpollHandler { epoll::Events::EPOLLIN, u64::from(RX_TAP_EVENT), ) - .unwrap(); + .map_err(DeviceError::UnregisterListener)?; self.rx_tap_listening = false; } return false; @@ -134,7 +134,7 @@ impl NetEpollHandler { epoll::Events::EPOLLIN, u64::from(RX_TAP_EVENT), ) - .unwrap(); + .map_err(DeviceError::RegisterListener)?; self.rx_tap_listening = true; } if self.rx.deferred_frame {