From 71ae97addb17c8f266b783353bdb8f4b85e83e58 Mon Sep 17 00:00:00 2001 From: Matheus Date: Mon, 3 Jun 2024 22:03:09 -0300 Subject: [PATCH] poll: properly return POLLERR and POLLHUP --- kernel-src/io/poll.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel-src/io/poll.c b/kernel-src/io/poll.c index 6b941299..48be6796 100644 --- a/kernel-src/io/poll.c +++ b/kernel-src/io/poll.c @@ -138,7 +138,7 @@ void poll_event(pollheader_t *header, int events) { polldesc_t *desc = iterator->desc; polldata_t *next = iterator->next; spinlock_acquire(&desc->eventlock); - int revents = iterator->events & events; + int revents = (iterator->events | POLLHUP | POLLERR) & events; if (revents == 0 || spinlock_try(&desc->lock) == false || spinlock_try(&desc->wakeuplock) == false) { removefromlist(&pending, iterator);