[v2] eal: fix epoll fd list rebuild
Checks
Commit Message
An issue has been observed where epoll file descriptor
list rebuilds every time an interrupt/alarm event is
received.
eal_intr_process_interrupts() should notify pipe fd only
if any source is removed from the source list i.e (rv > 0)
Fixes: 0c7ce182a760 ("eal: add pending interrupt callback unregister")
Cc: stable@dpdk.org
Signed-off-by: Harman Kalra <hkalra@marvell.com>
---
*V2: missing closing bracket in Fixes tag in V1
lib/librte_eal/linux/eal_interrupts.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Comments
19/06/2020 15:59, Harman Kalra:
> An issue has been observed where epoll file descriptor
> list rebuilds every time an interrupt/alarm event is
> received.
>
> eal_intr_process_interrupts() should notify pipe fd only
> if any source is removed from the source list i.e (rv > 0)
>
> Fixes: 0c7ce182a760 ("eal: add pending interrupt callback unregister")
> Cc: stable@dpdk.org
>
> Signed-off-by: Harman Kalra <hkalra@marvell.com>
Applied, thanks
@@ -1010,7 +1010,7 @@ eal_intr_process_interrupts(struct epoll_event *events, int nfds)
}
/* notify the pipe fd waited by epoll_wait to rebuild the wait list */
- if (rv >= 0 && write(intr_pipe.writefd, "1", 1) < 0) {
+ if (rv > 0 && write(intr_pipe.writefd, "1", 1) < 0) {
rte_spinlock_unlock(&intr_lock);
return -EPIPE;
}