diff --git a/vmm/src/serial_manager.rs b/vmm/src/serial_manager.rs index 5a61b39e5..f66476831 100644 --- a/vmm/src/serial_manager.rs +++ b/vmm/src/serial_manager.rs @@ -128,6 +128,17 @@ impl SerialManager { mut transport: ConsoleTransport, socket: Option, ) -> Result> { + let epoll_fd = epoll::create(true).map_err(Error::Epoll)?; + let kill_evt = EventFd::new(EFD_NONBLOCK).map_err(Error::EventFd)?; + + epoll::ctl( + epoll_fd, + epoll::ControlOptions::EPOLL_CTL_ADD, + kill_evt.as_raw_fd(), + epoll::Event::new(epoll::Events::EPOLLIN, EpollDispatch::Kill as u64), + ) + .map_err(Error::Epoll)?; + let mut socket_path: Option = None; let in_fd = match transport { @@ -170,17 +181,6 @@ impl SerialManager { _ => return Ok(None), }; - let epoll_fd = epoll::create(true).map_err(Error::Epoll)?; - let kill_evt = EventFd::new(EFD_NONBLOCK).map_err(Error::EventFd)?; - - epoll::ctl( - epoll_fd, - epoll::ControlOptions::EPOLL_CTL_ADD, - kill_evt.as_raw_fd(), - epoll::Event::new(epoll::Events::EPOLLIN, EpollDispatch::Kill as u64), - ) - .map_err(Error::Epoll)?; - let epoll_fd_data = if let ConsoleTransport::Socket(_) = transport { EpollDispatch::Socket } else {