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

Reply via email to