In function kqueue_scan(), variables count and nkev follow relation
count + nkev == maxevents. The code becomes a bit simpler if count
is removed.
OK?
Index: kern/kern_event.c
===================================================================
RCS file: src/sys/kern/kern_event.c,v
retrieving revision 1.147
diff -u -p -r1.147 kern_event.c
--- kern/kern_event.c 9 Dec 2020 18:58:19 -0000 1.147
+++ kern/kern_event.c 14 Dec 2020 15:32:57 -0000
@@ -950,13 +950,11 @@ kqueue_scan(struct kqueue_scan_state *sc
{
struct kqueue *kq = scan->kqs_kq;
struct knote *kn;
- int s, count, nkev = 0, error = 0;
+ int s, error = 0, nkev = 0;
- count = maxevents;
- if (count == 0)
+ if (maxevents == 0)
goto done;
retry:
- KASSERT(count == maxevents);
KASSERT(nkev == 0);
if (kq->kq_state & KQ_DYING) {
@@ -1005,7 +1003,7 @@ retry:
}
TAILQ_INSERT_HEAD(&kq->kq_head, &scan->kqs_start, kn_tqe);
- while (count) {
+ while (nkev < maxevents) {
kn = TAILQ_NEXT(&scan->kqs_start, kn_tqe);
if (kn->kn_filter == EVFILT_MARKER) {
if (kn == &scan->kqs_end)
@@ -1042,7 +1040,6 @@ retry:
*kevp = kn->kn_kevent;
kevp++;
nkev++;
- count--;
scan->kqs_nevent++;
/*