summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/io/random.c
diff options
context:
space:
mode:
authorPatrick Mooney <pmooney@pfmooney.com>2017-01-06 20:26:58 +0000
committerPatrick Mooney <pmooney@pfmooney.com>2017-02-13 21:44:16 +0000
commit278a073294ad5b2a41ca18aee0abb62fba8c02b6 (patch)
tree96c234cc71dffa26956e9d491cb0c650919555f4 /usr/src/uts/common/io/random.c
parent58139cb77120429064b87fbbecc56d459c914e7f (diff)
downloadillumos-joyent-278a073294ad5b2a41ca18aee0abb62fba8c02b6.tar.gz
OS-5882 epoll fails to wake on certain edge-triggered conditions
OS-5884 epoll should not emit POLLNVAL OS-5894 recursive epoll should emit EPOLLRDNORM Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com> Reviewed by: Robert Mustacchi <rm@joyent.com> Approved by: Robert Mustacchi <rm@joyent.com>
Diffstat (limited to 'usr/src/uts/common/io/random.c')
-rw-r--r--usr/src/uts/common/io/random.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/usr/src/uts/common/io/random.c b/usr/src/uts/common/io/random.c
index b5401b17cd..a50bbcceec 100644
--- a/usr/src/uts/common/io/random.c
+++ b/usr/src/uts/common/io/random.c
@@ -21,7 +21,7 @@
* Copyright 2009 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*
- * Copyright 2016 Joyent, Inc.
+ * Copyright 2017 Joyent, Inc.
*/
@@ -334,7 +334,7 @@ rnd_chpoll(dev_t dev, short events, int anyyet, short *reventsp,
* A non NULL pollhead pointer should be returned in case
* user polls for 0 events.
*/
- if (*reventsp == 0 && !anyyet)
+ if ((*reventsp == 0 && !anyyet) || (events & POLLET))
*phpp = &urnd_pollhd;
break;