svn commit: r340861 - head/sys/kern
Mark Johnston
markj at FreeBSD.org
Fri Nov 23 23:10:05 UTC 2018
Author: markj
Date: Fri Nov 23 23:10:03 2018
New Revision: 340861
URL: https://svnweb.freebsd.org/changeset/base/340861
Log:
Honour the waitok parameter in kevent_expand().
Reviewed by: kib
MFC after: 1 week
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D18316
Modified:
head/sys/kern/kern_event.c
Modified: head/sys/kern/kern_event.c
==============================================================================
--- head/sys/kern/kern_event.c Fri Nov 23 23:07:57 2018 (r340860)
+++ head/sys/kern/kern_event.c Fri Nov 23 23:10:03 2018 (r340861)
@@ -1686,10 +1686,6 @@ kqueue_schedtask(struct kqueue *kq)
* Expand the kq to make sure we have storage for fops/ident pair.
*
* Return 0 on success (or no work necessary), return errno on failure.
- *
- * Not calling hashinit w/ waitok (proper malloc flag) should be safe.
- * If kqueue_register is called from a non-fd context, there usually/should
- * be no locks held.
*/
static int
kqueue_expand(struct kqueue *kq, struct filterops *fops, uintptr_t ident,
@@ -1734,8 +1730,9 @@ kqueue_expand(struct kqueue *kq, struct filterops *fop
}
} else {
if (kq->kq_knhashmask == 0) {
- tmp_knhash = hashinit(KN_HASHSIZE, M_KQUEUE,
- &tmp_knhashmask);
+ tmp_knhash = hashinit_flags(KN_HASHSIZE, M_KQUEUE,
+ &tmp_knhashmask,
+ waitok ? HASH_WAITOK : HASH_NOWAIT);
if (tmp_knhash == NULL)
return ENOMEM;
KQ_LOCK(kq);
More information about the svn-src-head
mailing list