diff options
| author | Warner Losh <imp@FreeBSD.org> | 2003-04-21 05:58:51 +0000 |
|---|---|---|
| committer | Warner Losh <imp@FreeBSD.org> | 2003-04-21 05:58:51 +0000 |
| commit | e22b0bf4b8d2885efa0dc4c1c5127de3008f7cd5 (patch) | |
| tree | 99bc8b116945a7fa927cae614e40521d1cd00148 /sys/kern/subr_bus.c | |
| parent | 61a0da1de58423828ee7cdfff28b6d19c43af56f (diff) | |
Notes
Diffstat (limited to 'sys/kern/subr_bus.c')
| -rw-r--r-- | sys/kern/subr_bus.c | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/sys/kern/subr_bus.c b/sys/kern/subr_bus.c index 6c5955858d40..ecb1c7a05a78 100644 --- a/sys/kern/subr_bus.c +++ b/sys/kern/subr_bus.c @@ -353,21 +353,15 @@ devpoll(dev_t dev, int events, d_thread_t *td) { int revents = 0; - if (events & (POLLIN | POLLRDNORM)) - revents |= events & (POLLIN | POLLRDNORM); - - if (events & (POLLOUT | POLLWRNORM)) - revents |= events & (POLLOUT | POLLWRNORM); - mtx_lock(&devsoftc.mtx); - if (events & POLLRDBAND) + if (events & (POLLIN | POLLRDNORM)) { if (!TAILQ_EMPTY(&devsoftc.devq)) - revents |= POLLRDBAND; + revents = events & (POLLIN | POLLRDNORM); + else + selrecord(td, &devsoftc.sel); + } mtx_unlock(&devsoftc.mtx); - if (revents == 0) - selrecord(td, &devsoftc.sel); - return (revents); } |
