aboutsummaryrefslogtreecommitdiff
path: root/sys/kern
diff options
context:
space:
mode:
authorJilles Tjoelker <jilles@FreeBSD.org>2009-09-01 20:58:41 +0000
committerJilles Tjoelker <jilles@FreeBSD.org>2009-09-01 20:58:41 +0000
commit33656b91cda2504e2d41759732ada5d6db293e81 (patch)
tree981dd81ab20b2143640a5f88f9ae8368e7e39440 /sys/kern
parente2ba743711283aac14dd37fb281817decbb80879 (diff)
Notes
Diffstat (limited to 'sys/kern')
-rw-r--r--sys/kern/sys_generic.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/sys/kern/sys_generic.c b/sys/kern/sys_generic.c
index de703483b0c1..bd0f27933780 100644
--- a/sys/kern/sys_generic.c
+++ b/sys/kern/sys_generic.c
@@ -1228,6 +1228,13 @@ pollscan(td, fds, nfd)
selfdalloc(td, fds);
fds->revents = fo_poll(fp, fds->events,
td->td_ucred, td);
+ /*
+ * POSIX requires POLLOUT to be never
+ * set simultaneously with POLLHUP.
+ */
+ if ((fds->revents & POLLHUP) != 0)
+ fds->revents &= ~POLLOUT;
+
if (fds->revents != 0)
n++;
}