In the fdset_move, after copying the fd&rwfds from the src to the dst, the fd should be set to -1. Or else in some cases, there will be a fault missing. E.g: Before: 1 -1 3 4 -1 6 7 -1 9 10 After: 1 10 3 4 9 6 7 -1 9 10 Then the index7 will be returned correctly for the first time, but if another fd is to be added, it will fail.
Signed-off-by: Bing Zhao <bing.z...@hxt-semitech.com> --- lib/librte_vhost/fd_man.c | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/librte_vhost/fd_man.c b/lib/librte_vhost/fd_man.c index 4c6fed418..48594dd7f 100644 --- a/lib/librte_vhost/fd_man.c +++ b/lib/librte_vhost/fd_man.c @@ -63,6 +63,7 @@ fdset_move(struct fdset *pfdset, int dst, int src) { pfdset->fd[dst] = pfdset->fd[src]; pfdset->rwfds[dst] = pfdset->rwfds[src]; + pfdset->fd[src].fd = -1; } static void -- 2.11.0.windows.1