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++;
 
                /*

Reply via email to