Zero knotes on allocation. Parts of struct knote, such as kn_tqe, can
retain their old value quite long, which is not good in this complex
piece of code.

OK?

Index: kern/kern_event.c
===================================================================
RCS file: src/sys/kern/kern_event.c,v
retrieving revision 1.122
diff -u -p -r1.122 kern_event.c
--- kern/kern_event.c   5 Feb 2020 17:03:13 -0000       1.122
+++ kern/kern_event.c   8 Feb 2020 16:41:00 -0000
@@ -686,7 +686,7 @@ kqueue_register(struct kqueue *kq, struc
        }
 
        if (kev->flags & EV_ADD)
-               newkn = pool_get(&knote_pool, PR_WAITOK);
+               newkn = pool_get(&knote_pool, PR_WAITOK | PR_ZERO);
 
 again:
        if (fops->f_isfd) {

Reply via email to