From e3e9c87c0fc7c8e65e8f13c7bef133a552d0a597 Mon Sep 17 00:00:00 2001 From: Yunjian Wang Date: Wed, 15 Jul 2020 10:40:10 +0800 Subject: [PATCH] eal/linux: fix handling of error events from epoll The "rev->epdata.event" assigned to "events.epdata.event" directly, which was wrong in case of epoll events. It should be set to the "evs.events". Fixes: 9efe9c6cdcac ("eal/linux: add epoll wrappers") Cc: stable@dpdk.org Signed-off-by: Yunjian Wang Acked-by: Harman Kalra --- lib/librte_eal/linux/eal_interrupts.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/librte_eal/linux/eal_interrupts.c b/lib/librte_eal/linux/eal_interrupts.c index 2f03a61254..1dd994bd1f 100644 --- a/lib/librte_eal/linux/eal_interrupts.c +++ b/lib/librte_eal/linux/eal_interrupts.c @@ -1241,7 +1241,7 @@ eal_epoll_process_event(struct epoll_event *evs, unsigned int n, events[count].status = RTE_EPOLL_VALID; events[count].fd = rev->fd; events[count].epfd = rev->epfd; - events[count].epdata.event = rev->epdata.event; + events[count].epdata.event = evs[i].events; events[count].epdata.data = rev->epdata.data; if (rev->epdata.cb_fun) rev->epdata.cb_fun(rev->fd, -- 2.20.1