From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bing Zhao Subject: [PATCH] reset src fd field to -1 in fdset_move of vhost Date: Thu, 21 Dec 2017 17:15:40 +0800 Message-ID: <20171221091540.8624-1-ilovethull@163.com> Cc: bing.zhao@hxt-semitech.com, Bing Zhao To: dev@dpdk.org Return-path: Received: from m50-133.163.com (m50-133.163.com [123.125.50.133]) by dpdk.org (Postfix) with ESMTP id 9E2991B238 for ; Thu, 21 Dec 2017 10:15:45 +0100 (CET) List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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 --- 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