Module Name: src Committed By: thorpej Date: Sat Dec 19 01:18:59 UTC 2020
Modified Files: src/sys/dev: midi.c sequencer.c src/sys/dev/apm: apm.c src/sys/dev/audio: audio.c src/sys/dev/hpc/apm: apmdev.c src/sys/dev/ir: irframe_tty.c Log Message: Use sel{record,remove}_knote(). To generate a diff of this commit: cvs rdiff -u -r1.90 -r1.91 src/sys/dev/midi.c cvs rdiff -u -r1.72 -r1.73 src/sys/dev/sequencer.c cvs rdiff -u -r1.33 -r1.34 src/sys/dev/apm/apm.c cvs rdiff -u -r1.85 -r1.86 src/sys/dev/audio/audio.c cvs rdiff -u -r1.32 -r1.33 src/sys/dev/hpc/apm/apmdev.c cvs rdiff -u -r1.63 -r1.64 src/sys/dev/ir/irframe_tty.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/dev/midi.c diff -u src/sys/dev/midi.c:1.90 src/sys/dev/midi.c:1.91 --- src/sys/dev/midi.c:1.90 Sat May 23 23:42:42 2020 +++ src/sys/dev/midi.c Sat Dec 19 01:18:58 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: midi.c,v 1.90 2020/05/23 23:42:42 ad Exp $ */ +/* $NetBSD: midi.c,v 1.91 2020/12/19 01:18:58 thorpej Exp $ */ /* * Copyright (c) 1998, 2008 The NetBSD Foundation, Inc. @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: midi.c,v 1.90 2020/05/23 23:42:42 ad Exp $"); +__KERNEL_RCSID(0, "$NetBSD: midi.c,v 1.91 2020/12/19 01:18:58 thorpej Exp $"); #ifdef _KERNEL_OPT #include "midi.h" @@ -1743,7 +1743,7 @@ filt_midirdetach(struct knote *kn) struct midi_softc *sc = kn->kn_hook; mutex_enter(sc->lock); - SLIST_REMOVE(&sc->rsel.sel_klist, kn, knote, kn_selnext); + selremove_knote(&sc->rsel, kn); mutex_exit(sc->lock); } @@ -1776,7 +1776,7 @@ filt_midiwdetach(struct knote *kn) struct midi_softc *sc = kn->kn_hook; mutex_enter(sc->lock); - SLIST_REMOVE(&sc->wsel.sel_klist, kn, knote, kn_selnext); + selremove_knote(&sc->wsel, kn); mutex_exit(sc->lock); } @@ -1823,36 +1823,37 @@ midikqfilter(dev_t dev, struct knote *kn { struct midi_softc *sc = device_lookup_private(&midi_cd, MIDIUNIT(dev)); - struct klist *klist; + struct selinfo *sip; + int error = 0; - mutex_exit(sc->lock); - sc->refcnt++; mutex_enter(sc->lock); + sc->refcnt++; switch (kn->kn_filter) { case EVFILT_READ: - klist = &sc->rsel.sel_klist; + sip = &sc->rsel; kn->kn_fop = &midiread_filtops; break; case EVFILT_WRITE: - klist = &sc->wsel.sel_klist; + sip = &sc->wsel; kn->kn_fop = &midiwrite_filtops; break; default: - return (EINVAL); + error = EINVAL; + goto out; } kn->kn_hook = sc; - mutex_enter(sc->lock); - SLIST_INSERT_HEAD(klist, kn, kn_selnext); + selrecord_knote(sip, kn); + out: if (--sc->refcnt < 0) cv_broadcast(&sc->detach_cv); mutex_exit(sc->lock); - return (0); + return (error); } void Index: src/sys/dev/sequencer.c diff -u src/sys/dev/sequencer.c:1.72 src/sys/dev/sequencer.c:1.73 --- src/sys/dev/sequencer.c:1.72 Sat May 23 23:42:42 2020 +++ src/sys/dev/sequencer.c Sat Dec 19 01:18:58 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: sequencer.c,v 1.72 2020/05/23 23:42:42 ad Exp $ */ +/* $NetBSD: sequencer.c,v 1.73 2020/12/19 01:18:58 thorpej Exp $ */ /* * Copyright (c) 1998, 2008 The NetBSD Foundation, Inc. @@ -55,7 +55,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: sequencer.c,v 1.72 2020/05/23 23:42:42 ad Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sequencer.c,v 1.73 2020/12/19 01:18:58 thorpej Exp $"); #ifdef _KERNEL_OPT #include "sequencer.h" @@ -901,7 +901,7 @@ filt_sequencerrdetach(struct knote *kn) struct sequencer_softc *sc = kn->kn_hook; mutex_enter(&sc->lock); - SLIST_REMOVE(&sc->rsel.sel_klist, kn, knote, kn_selnext); + selremove_knote(&sc->rsel, kn); mutex_exit(&sc->lock); } @@ -939,7 +939,7 @@ filt_sequencerwdetach(struct knote *kn) struct sequencer_softc *sc = kn->kn_hook; mutex_enter(&sc->lock); - SLIST_REMOVE(&sc->wsel.sel_klist, kn, knote, kn_selnext); + selremove_knote(&sc->wsel, kn); mutex_exit(&sc->lock); } @@ -975,18 +975,18 @@ static int sequencerkqfilter(dev_t dev, struct knote *kn) { struct sequencer_softc *sc; - struct klist *klist; + struct selinfo *sip; if ((sc = sequencerget(SEQUENCERUNIT(dev))) == NULL) return ENXIO; switch (kn->kn_filter) { case EVFILT_READ: - klist = &sc->rsel.sel_klist; + sip = &sc->rsel; kn->kn_fop = &sequencerread_filtops; break; case EVFILT_WRITE: - klist = &sc->wsel.sel_klist; + sip = &sc->wsel; kn->kn_fop = &sequencerwrite_filtops; break; @@ -997,7 +997,7 @@ sequencerkqfilter(dev_t dev, struct knot kn->kn_hook = sc; mutex_enter(&sc->lock); - SLIST_INSERT_HEAD(klist, kn, kn_selnext); + selrecord_knote(sip, kn); mutex_exit(&sc->lock); return (0); Index: src/sys/dev/apm/apm.c diff -u src/sys/dev/apm/apm.c:1.33 src/sys/dev/apm/apm.c:1.34 --- src/sys/dev/apm/apm.c:1.33 Sat Oct 28 04:53:54 2017 +++ src/sys/dev/apm/apm.c Sat Dec 19 01:18:58 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: apm.c,v 1.33 2017/10/28 04:53:54 riastradh Exp $ */ +/* $NetBSD: apm.c,v 1.34 2020/12/19 01:18:58 thorpej Exp $ */ /*- * Copyright (c) 1996, 1997 The NetBSD Foundation, Inc. @@ -33,7 +33,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: apm.c,v 1.33 2017/10/28 04:53:54 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: apm.c,v 1.34 2020/12/19 01:18:58 thorpej Exp $"); #include "opt_apm.h" @@ -870,7 +870,7 @@ filt_apmrdetach(struct knote *kn) struct apm_softc *sc = kn->kn_hook; APM_LOCK(sc); - SLIST_REMOVE(&sc->sc_rsel.sel_klist, kn, knote, kn_selnext); + selremove_knote(&sc->sc_rsel, kn); APM_UNLOCK(sc); } @@ -894,11 +894,9 @@ int apmkqfilter(dev_t dev, struct knote *kn) { struct apm_softc *sc = device_lookup_private(&apm_cd, APMUNIT(dev)); - struct klist *klist; switch (kn->kn_filter) { case EVFILT_READ: - klist = &sc->sc_rsel.sel_klist; kn->kn_fop = &apmread_filtops; break; @@ -909,7 +907,7 @@ apmkqfilter(dev_t dev, struct knote *kn) kn->kn_hook = sc; APM_LOCK(sc); - SLIST_INSERT_HEAD(klist, kn, kn_selnext); + selrecord_knote(&sc->sc_rsel, kn); APM_UNLOCK(sc); return (0); Index: src/sys/dev/audio/audio.c diff -u src/sys/dev/audio/audio.c:1.85 src/sys/dev/audio/audio.c:1.86 --- src/sys/dev/audio/audio.c:1.85 Sun Dec 13 05:47:08 2020 +++ src/sys/dev/audio/audio.c Sat Dec 19 01:18:58 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: audio.c,v 1.85 2020/12/13 05:47:08 isaki Exp $ */ +/* $NetBSD: audio.c,v 1.86 2020/12/19 01:18:58 thorpej Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -138,7 +138,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: audio.c,v 1.85 2020/12/13 05:47:08 isaki Exp $"); +__KERNEL_RCSID(0, "$NetBSD: audio.c,v 1.86 2020/12/19 01:18:58 thorpej Exp $"); #ifdef _KERNEL_OPT #include "audio.h" @@ -3143,7 +3143,7 @@ filt_audioread_detach(struct knote *kn) TRACEF(3, file, ""); mutex_enter(sc->sc_lock); - SLIST_REMOVE(&sc->sc_rsel.sel_klist, kn, knote, kn_selnext); + selremove_knote(&sc->sc_rsel, kn); mutex_exit(sc->sc_lock); } @@ -3190,7 +3190,7 @@ filt_audiowrite_detach(struct knote *kn) TRACEF(3, file, ""); mutex_enter(sc->sc_lock); - SLIST_REMOVE(&sc->sc_wsel.sel_klist, kn, knote, kn_selnext); + selremove_knote(&sc->sc_wsel, kn); mutex_exit(sc->sc_lock); } @@ -3225,30 +3225,29 @@ filt_audiowrite_event(struct knote *kn, int audio_kqfilter(struct audio_softc *sc, audio_file_t *file, struct knote *kn) { - struct klist *klist; + struct selinfo *sip; TRACEF(3, file, "kn=%p kn_filter=%x", kn, (int)kn->kn_filter); - mutex_enter(sc->sc_lock); switch (kn->kn_filter) { case EVFILT_READ: - klist = &sc->sc_rsel.sel_klist; + sip = &sc->sc_rsel; kn->kn_fop = &audioread_filtops; break; case EVFILT_WRITE: - klist = &sc->sc_wsel.sel_klist; + sip = &sc->sc_wsel; kn->kn_fop = &audiowrite_filtops; break; default: - mutex_exit(sc->sc_lock); return EINVAL; } kn->kn_hook = file; - SLIST_INSERT_HEAD(klist, kn, kn_selnext); + mutex_enter(sc->sc_lock); + selrecord_knote(sip, kn); mutex_exit(sc->sc_lock); return 0; @@ -6078,7 +6077,6 @@ audio_softintr_rd(void *cookie) /* Notify that data has arrived. */ selnotify(&sc->sc_rsel, 0, NOTE_SUBMIT); - KNOTE(&sc->sc_rsel.sel_klist, 0); cv_broadcast(&sc->sc_rmixer->outcv); mutex_exit(sc->sc_lock); @@ -6143,7 +6141,6 @@ audio_softintr_wr(void *cookie) if (found) { TRACE(4, "selnotify"); selnotify(&sc->sc_wsel, 0, NOTE_SUBMIT); - KNOTE(&sc->sc_wsel.sel_klist, 0); } /* Notify to audio_write() that outbuf available. */ Index: src/sys/dev/hpc/apm/apmdev.c diff -u src/sys/dev/hpc/apm/apmdev.c:1.32 src/sys/dev/hpc/apm/apmdev.c:1.33 --- src/sys/dev/hpc/apm/apmdev.c:1.32 Sat Jul 21 18:11:09 2018 +++ src/sys/dev/hpc/apm/apmdev.c Sat Dec 19 01:18:59 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: apmdev.c,v 1.32 2018/07/21 18:11:09 maya Exp $ */ +/* $NetBSD: apmdev.c,v 1.33 2020/12/19 01:18:59 thorpej Exp $ */ /*- * Copyright (c) 1996, 1997 The NetBSD Foundation, Inc. @@ -33,7 +33,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: apmdev.c,v 1.32 2018/07/21 18:11:09 maya Exp $"); +__KERNEL_RCSID(0, "$NetBSD: apmdev.c,v 1.33 2020/12/19 01:18:59 thorpej Exp $"); #ifdef _KERNEL_OPT #include "opt_apm.h" @@ -911,7 +911,7 @@ filt_apmrdetach(struct knote *kn) struct apm_softc *sc = kn->kn_hook; APM_LOCK(sc); - SLIST_REMOVE(&sc->sc_rsel.sel_klist, kn, knote, kn_selnext); + selremove_knote(&sc->sc_rsel, kn); APM_UNLOCK(sc); } @@ -935,11 +935,9 @@ int apmdevkqfilter(dev_t dev, struct knote *kn) { struct apm_softc *sc = device_lookup_private(&apmdev_cd, APMUNIT(dev)); - struct klist *klist; switch (kn->kn_filter) { case EVFILT_READ: - klist = &sc->sc_rsel.sel_klist; kn->kn_fop = &apmread_filtops; break; @@ -950,7 +948,7 @@ apmdevkqfilter(dev_t dev, struct knote * kn->kn_hook = sc; APM_LOCK(sc); - SLIST_INSERT_HEAD(klist, kn, kn_selnext); + selrecord_knote(&sc->sc_rsel, kn); APM_UNLOCK(sc); return (0); Index: src/sys/dev/ir/irframe_tty.c diff -u src/sys/dev/ir/irframe_tty.c:1.63 src/sys/dev/ir/irframe_tty.c:1.64 --- src/sys/dev/ir/irframe_tty.c:1.63 Thu Jan 24 09:33:03 2019 +++ src/sys/dev/ir/irframe_tty.c Sat Dec 19 01:18:59 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: irframe_tty.c,v 1.63 2019/01/24 09:33:03 knakahara Exp $ */ +/* $NetBSD: irframe_tty.c,v 1.64 2020/12/19 01:18:59 thorpej Exp $ */ /* * TODO @@ -41,7 +41,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: irframe_tty.c,v 1.63 2019/01/24 09:33:03 knakahara Exp $"); +__KERNEL_RCSID(0, "$NetBSD: irframe_tty.c,v 1.64 2020/12/19 01:18:59 thorpej Exp $"); #include <sys/param.h> #include <sys/proc.h> @@ -787,7 +787,7 @@ filt_irframetrdetach(struct knote *kn) int s; s = splir(); - SLIST_REMOVE(&sc->sc_rsel.sel_klist, kn, knote, kn_selnext); + selremove_knote(&sc->sc_rsel, kn); splx(s); } @@ -809,7 +809,7 @@ filt_irframetwdetach(struct knote *kn) int s; s = splir(); - SLIST_REMOVE(&sc->sc_wsel.sel_klist, kn, knote, kn_selnext); + selremove_knote(&sc->sc_wsel, kn); splx(s); } @@ -848,16 +848,16 @@ irframet_kqfilter(void *h, struct knote { struct tty *tp = h; struct irframet_softc *sc = (struct irframet_softc *)tp->t_sc; - struct klist *klist; + struct selinfo *sip; int s; switch (kn->kn_filter) { case EVFILT_READ: - klist = &sc->sc_rsel.sel_klist; + sip = &sc->sc_rsel; kn->kn_fop = &irframetread_filtops; break; case EVFILT_WRITE: - klist = &sc->sc_wsel.sel_klist; + sip = &sc->sc_wsel; kn->kn_fop = &irframetwrite_filtops; break; default: @@ -867,7 +867,7 @@ irframet_kqfilter(void *h, struct knote kn->kn_hook = tp; s = splir(); - SLIST_INSERT_HEAD(klist, kn, kn_selnext); + selrecord_knote(sip, kn); splx(s); return (0);