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);