Module Name: src Committed By: thorpej Date: Fri Dec 11 03:00:10 UTC 2020
Modified Files: src/sys/kern: kern_entropy.c kern_event.c subr_log.c sys_pipe.c tty.c tty_pty.c uipc_socket.c Log Message: Use sel{record,remove}_knote(). To generate a diff of this commit: cvs rdiff -u -r1.24 -r1.25 src/sys/kern/kern_entropy.c cvs rdiff -u -r1.108 -r1.109 src/sys/kern/kern_event.c cvs rdiff -u -r1.59 -r1.60 src/sys/kern/subr_log.c cvs rdiff -u -r1.150 -r1.151 src/sys/kern/sys_pipe.c cvs rdiff -u -r1.294 -r1.295 src/sys/kern/tty.c cvs rdiff -u -r1.145 -r1.146 src/sys/kern/tty_pty.c cvs rdiff -u -r1.293 -r1.294 src/sys/kern/uipc_socket.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/kern/kern_entropy.c diff -u src/sys/kern/kern_entropy.c:1.24 src/sys/kern/kern_entropy.c:1.25 --- src/sys/kern/kern_entropy.c:1.24 Tue Sep 29 07:51:01 2020 +++ src/sys/kern/kern_entropy.c Fri Dec 11 03:00:09 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: kern_entropy.c,v 1.24 2020/09/29 07:51:01 gson Exp $ */ +/* $NetBSD: kern_entropy.c,v 1.25 2020/12/11 03:00:09 thorpej Exp $ */ /*- * Copyright (c) 2019 The NetBSD Foundation, Inc. @@ -75,7 +75,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: kern_entropy.c,v 1.24 2020/09/29 07:51:01 gson Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kern_entropy.c,v 1.25 2020/12/11 03:00:09 thorpej Exp $"); #include <sys/param.h> #include <sys/types.h> @@ -1409,7 +1409,7 @@ filt_entropy_read_detach(struct knote *k KASSERT(E->stage >= ENTROPY_WARM); mutex_enter(&E->lock); - SLIST_REMOVE(&E->selq.sel_klist, kn, knote, kn_selnext); + selremove_knote(&E->selq, kn); mutex_exit(&E->lock); } @@ -1480,7 +1480,7 @@ entropy_kqfilter(struct knote *kn) /* Enter into the global select queue. */ mutex_enter(&E->lock); kn->kn_fop = &entropy_read_filtops; - SLIST_INSERT_HEAD(&E->selq.sel_klist, kn, kn_selnext); + selrecord_knote(&E->selq, kn); mutex_exit(&E->lock); return 0; case EVFILT_WRITE: Index: src/sys/kern/kern_event.c diff -u src/sys/kern/kern_event.c:1.108 src/sys/kern/kern_event.c:1.109 --- src/sys/kern/kern_event.c:1.108 Sat Oct 31 01:08:32 2020 +++ src/sys/kern/kern_event.c Fri Dec 11 03:00:09 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: kern_event.c,v 1.108 2020/10/31 01:08:32 christos Exp $ */ +/* $NetBSD: kern_event.c,v 1.109 2020/12/11 03:00:09 thorpej Exp $ */ /*- * Copyright (c) 2008, 2009 The NetBSD Foundation, Inc. @@ -59,7 +59,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: kern_event.c,v 1.108 2020/10/31 01:08:32 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kern_event.c,v 1.109 2020/12/11 03:00:09 thorpej Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -481,7 +481,7 @@ filt_kqdetach(struct knote *kn) kq = ((file_t *)kn->kn_obj)->f_kqueue; mutex_spin_enter(&kq->kq_lock); - SLIST_REMOVE(&kq->kq_sel.sel_klist, kn, knote, kn_selnext); + selremove_knote(&kq->kq_sel, kn); mutex_spin_exit(&kq->kq_lock); } @@ -1780,7 +1780,7 @@ kqueue_kqfilter(file_t *fp, struct knote kn->kn_fop = &kqread_filtops; mutex_enter(&kq->kq_lock); - SLIST_INSERT_HEAD(&kq->kq_sel.sel_klist, kn, kn_selnext); + selrecord_knote(&kq->kq_sel, kn); mutex_exit(&kq->kq_lock); return 0; Index: src/sys/kern/subr_log.c diff -u src/sys/kern/subr_log.c:1.59 src/sys/kern/subr_log.c:1.60 --- src/sys/kern/subr_log.c:1.59 Mon Sep 3 16:29:35 2018 +++ src/sys/kern/subr_log.c Fri Dec 11 03:00:09 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: subr_log.c,v 1.59 2018/09/03 16:29:35 riastradh Exp $ */ +/* $NetBSD: subr_log.c,v 1.60 2020/12/11 03:00:09 thorpej Exp $ */ /*- * Copyright (c) 2007, 2008 The NetBSD Foundation, Inc. @@ -65,7 +65,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: subr_log.c,v 1.59 2018/09/03 16:29:35 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: subr_log.c,v 1.60 2020/12/11 03:00:09 thorpej Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -262,7 +262,7 @@ filt_logrdetach(struct knote *kn) { mutex_spin_enter(&log_lock); - SLIST_REMOVE(&log_selp.sel_klist, kn, knote, kn_selnext); + selremove_knote(&log_selp, kn); mutex_spin_exit(&log_lock); } @@ -299,11 +299,9 @@ static const struct filterops logread_fi static int logkqfilter(dev_t dev, struct knote *kn) { - struct klist *klist; switch (kn->kn_filter) { case EVFILT_READ: - klist = &log_selp.sel_klist; kn->kn_fop = &logread_filtops; break; @@ -311,9 +309,10 @@ logkqfilter(dev_t dev, struct knote *kn) return (EINVAL); } - mutex_spin_enter(&log_lock); kn->kn_hook = NULL; - SLIST_INSERT_HEAD(klist, kn, kn_selnext); + + mutex_spin_enter(&log_lock); + selrecord_knote(&log_selp, kn); mutex_spin_exit(&log_lock); return (0); Index: src/sys/kern/sys_pipe.c diff -u src/sys/kern/sys_pipe.c:1.150 src/sys/kern/sys_pipe.c:1.151 --- src/sys/kern/sys_pipe.c:1.150 Thu Jun 25 16:19:07 2020 +++ src/sys/kern/sys_pipe.c Fri Dec 11 03:00:09 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: sys_pipe.c,v 1.150 2020/06/25 16:19:07 maxv Exp $ */ +/* $NetBSD: sys_pipe.c,v 1.151 2020/12/11 03:00:09 thorpej Exp $ */ /*- * Copyright (c) 2003, 2007, 2008, 2009 The NetBSD Foundation, Inc. @@ -68,7 +68,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: sys_pipe.c,v 1.150 2020/06/25 16:19:07 maxv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sys_pipe.c,v 1.151 2020/12/11 03:00:09 thorpej Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -977,6 +977,8 @@ pipeclose(struct pipe *pipe) * Any knote objects still left in the list are * the one attached by peer. Since no one will * traverse this list, we just clear it. + * + * XXX Exposes select/kqueue internals. */ SLIST_INIT(&pipe->pipe_sel.sel_klist); @@ -1029,7 +1031,7 @@ filt_pipedetach(struct knote *kn) } KASSERT(kn->kn_hook == pipe); - SLIST_REMOVE(&pipe->pipe_sel.sel_klist, kn, knote, kn_selnext); + selremove_knote(&pipe->pipe_sel, kn); mutex_exit(lock); } @@ -1131,7 +1133,7 @@ pipe_kqfilter(file_t *fp, struct knote * } kn->kn_hook = pipe; - SLIST_INSERT_HEAD(&pipe->pipe_sel.sel_klist, kn, kn_selnext); + selrecord_knote(&pipe->pipe_sel, kn); mutex_exit(lock); return (0); Index: src/sys/kern/tty.c diff -u src/sys/kern/tty.c:1.294 src/sys/kern/tty.c:1.295 --- src/sys/kern/tty.c:1.294 Sat Oct 10 18:53:56 2020 +++ src/sys/kern/tty.c Fri Dec 11 03:00:09 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: tty.c,v 1.294 2020/10/10 18:53:56 christos Exp $ */ +/* $NetBSD: tty.c,v 1.295 2020/12/11 03:00:09 thorpej Exp $ */ /*- * Copyright (c) 2008, 2020 The NetBSD Foundation, Inc. @@ -63,7 +63,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: tty.c,v 1.294 2020/10/10 18:53:56 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tty.c,v 1.295 2020/12/11 03:00:09 thorpej Exp $"); #ifdef _KERNEL_OPT #include "opt_compat_netbsd.h" @@ -1469,7 +1469,7 @@ filt_ttyrdetach(struct knote *kn) tp = kn->kn_hook; mutex_spin_enter(&tty_lock); - SLIST_REMOVE(&tp->t_rsel.sel_klist, kn, knote, kn_selnext); + selremove_knote(&tp->t_rsel, kn); mutex_spin_exit(&tty_lock); } @@ -1494,7 +1494,7 @@ filt_ttywdetach(struct knote *kn) tp = kn->kn_hook; mutex_spin_enter(&tty_lock); - SLIST_REMOVE(&tp->t_wsel.sel_klist, kn, knote, kn_selnext); + selremove_knote(&tp->t_wsel, kn); mutex_spin_exit(&tty_lock); } @@ -1532,18 +1532,18 @@ int ttykqfilter(dev_t dev, struct knote *kn) { struct tty *tp; - struct klist *klist; + struct selinfo *sip; if ((tp = cdev_tty(dev)) == NULL) return (ENXIO); switch (kn->kn_filter) { case EVFILT_READ: - klist = &tp->t_rsel.sel_klist; + sip = &tp->t_rsel; kn->kn_fop = &ttyread_filtops; break; case EVFILT_WRITE: - klist = &tp->t_wsel.sel_klist; + sip = &tp->t_wsel; kn->kn_fop = &ttywrite_filtops; break; default: @@ -1553,7 +1553,7 @@ ttykqfilter(dev_t dev, struct knote *kn) kn->kn_hook = tp; mutex_spin_enter(&tty_lock); - SLIST_INSERT_HEAD(klist, kn, kn_selnext); + selrecord_knote(sip, kn); mutex_spin_exit(&tty_lock); return (0); Index: src/sys/kern/tty_pty.c diff -u src/sys/kern/tty_pty.c:1.145 src/sys/kern/tty_pty.c:1.146 --- src/sys/kern/tty_pty.c:1.145 Fri Feb 15 18:57:15 2019 +++ src/sys/kern/tty_pty.c Fri Dec 11 03:00:09 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: tty_pty.c,v 1.145 2019/02/15 18:57:15 mgorny Exp $ */ +/* $NetBSD: tty_pty.c,v 1.146 2020/12/11 03:00:09 thorpej Exp $ */ /* * Copyright (c) 1982, 1986, 1989, 1993 @@ -37,7 +37,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: tty_pty.c,v 1.145 2019/02/15 18:57:15 mgorny Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tty_pty.c,v 1.146 2020/12/11 03:00:09 thorpej Exp $"); #include "opt_ptm.h" @@ -904,7 +904,7 @@ filt_ptcrdetach(struct knote *kn) pti = kn->kn_hook; mutex_spin_enter(&tty_lock); - SLIST_REMOVE(&pti->pt_selr.sel_klist, kn, knote, kn_selnext); + selremove_knote(&pti->pt_selr, kn); mutex_spin_exit(&tty_lock); } @@ -958,7 +958,7 @@ filt_ptcwdetach(struct knote *kn) pti = kn->kn_hook; mutex_spin_enter(&tty_lock); - SLIST_REMOVE(&pti->pt_selw.sel_klist, kn, knote, kn_selnext); + selremove_knote(&pti->pt_selw, kn); mutex_spin_exit(&tty_lock); } @@ -1019,15 +1019,15 @@ int ptckqfilter(dev_t dev, struct knote *kn) { struct pt_softc *pti = pt_softc[minor(dev)]; - struct klist *klist; + struct selinfo *sip; switch (kn->kn_filter) { case EVFILT_READ: - klist = &pti->pt_selr.sel_klist; + sip = &pti->pt_selr; kn->kn_fop = &ptcread_filtops; break; case EVFILT_WRITE: - klist = &pti->pt_selw.sel_klist; + sip = &pti->pt_selw; kn->kn_fop = &ptcwrite_filtops; break; default: @@ -1037,7 +1037,7 @@ ptckqfilter(dev_t dev, struct knote *kn) kn->kn_hook = pti; mutex_spin_enter(&tty_lock); - SLIST_INSERT_HEAD(klist, kn, kn_selnext); + selrecord_knote(sip, kn); mutex_spin_exit(&tty_lock); return 0; Index: src/sys/kern/uipc_socket.c diff -u src/sys/kern/uipc_socket.c:1.293 src/sys/kern/uipc_socket.c:1.294 --- src/sys/kern/uipc_socket.c:1.293 Mon Nov 23 00:52:53 2020 +++ src/sys/kern/uipc_socket.c Fri Dec 11 03:00:09 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: uipc_socket.c,v 1.293 2020/11/23 00:52:53 chs Exp $ */ +/* $NetBSD: uipc_socket.c,v 1.294 2020/12/11 03:00:09 thorpej Exp $ */ /* * Copyright (c) 2002, 2007, 2008, 2009 The NetBSD Foundation, Inc. @@ -71,7 +71,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: uipc_socket.c,v 1.293 2020/11/23 00:52:53 chs Exp $"); +__KERNEL_RCSID(0, "$NetBSD: uipc_socket.c,v 1.294 2020/12/11 03:00:09 thorpej Exp $"); #ifdef _KERNEL_OPT #include "opt_compat_netbsd.h" @@ -2225,9 +2225,9 @@ filt_sordetach(struct knote *kn) so = ((file_t *)kn->kn_obj)->f_socket; solock(so); - SLIST_REMOVE(&so->so_rcv.sb_sel.sel_klist, kn, knote, kn_selnext); - if (SLIST_EMPTY(&so->so_rcv.sb_sel.sel_klist)) - so->so_rcv.sb_flags &= ~SB_KNOTE; + selremove_knote(&so->so_rcv.sb_sel, kn); + if (SLIST_EMPTY(&so->so_rcv.sb_sel.sel_klist)) /* XXX select/kqueue */ + so->so_rcv.sb_flags &= ~SB_KNOTE; /* XXX internals */ sounlock(so); } @@ -2264,9 +2264,9 @@ filt_sowdetach(struct knote *kn) so = ((file_t *)kn->kn_obj)->f_socket; solock(so); - SLIST_REMOVE(&so->so_snd.sb_sel.sel_klist, kn, knote, kn_selnext); - if (SLIST_EMPTY(&so->so_snd.sb_sel.sel_klist)) - so->so_snd.sb_flags &= ~SB_KNOTE; + selremove_knote(&so->so_snd.sb_sel, kn); + if (SLIST_EMPTY(&so->so_snd.sb_sel.sel_klist)) /* XXX select/kqueue */ + so->so_snd.sb_flags &= ~SB_KNOTE; /* XXX internals */ sounlock(so); } @@ -2366,7 +2366,7 @@ soo_kqfilter(struct file *fp, struct kno sounlock(so); return EINVAL; } - SLIST_INSERT_HEAD(&sb->sb_sel.sel_klist, kn, kn_selnext); + selrecord_knote(&sb->sb_sel, kn); sb->sb_flags |= SB_KNOTE; sounlock(so); return 0;