Module Name:    src
Committed By:   mrg
Date:           Mon Mar 26 06:49:16 UTC 2012

Modified Files:
        src/sys/dev/bluetooth: btsco.c

Log Message:
don't use mutex_spin*() on an IPL_NONE mutex.  fixes PR#46120.


To generate a diff of this commit:
cvs rdiff -u -r1.26 -r1.27 src/sys/dev/bluetooth/btsco.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/bluetooth/btsco.c
diff -u src/sys/dev/bluetooth/btsco.c:1.26 src/sys/dev/bluetooth/btsco.c:1.27
--- src/sys/dev/bluetooth/btsco.c:1.26	Sat Dec 10 16:16:11 2011
+++ src/sys/dev/bluetooth/btsco.c	Mon Mar 26 06:49:15 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: btsco.c,v 1.26 2011/12/10 16:16:11 jmcneill Exp $	*/
+/*	$NetBSD: btsco.c,v 1.27 2012/03/26 06:49:15 mrg Exp $	*/
 
 /*-
  * Copyright (c) 2006 Itronix Inc.
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: btsco.c,v 1.26 2011/12/10 16:16:11 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: btsco.c,v 1.27 2012/03/26 06:49:15 mrg Exp $");
 
 #include <sys/param.h>
 #include <sys/audioio.h>
@@ -458,7 +458,7 @@ btsco_sco_disconnected(void *arg, int er
 		 * has completed so that when it tries to send more, we
 		 * can indicate an error.
 		 */
-		mutex_spin_enter(&sc->sc_intr_lock);
+		mutex_enter(&sc->sc_intr_lock);
 		if (sc->sc_tx_pending > 0) {
 			sc->sc_tx_pending = 0;
 			(*sc->sc_tx_intr)(sc->sc_tx_intrarg);
@@ -467,7 +467,7 @@ btsco_sco_disconnected(void *arg, int er
 			sc->sc_rx_want = 0;
 			(*sc->sc_rx_intr)(sc->sc_rx_intrarg);
 		}
-		mutex_spin_exit(&sc->sc_intr_lock);
+		mutex_exit(&sc->sc_intr_lock);
 		break;
 
 	default:
@@ -501,13 +501,13 @@ btsco_sco_complete(void *arg, int count)
 
 	DPRINTFN(10, "%s count %d\n", sc->sc_name, count);
 
-	mutex_spin_enter(&sc->sc_intr_lock);
+	mutex_enter(&sc->sc_intr_lock);
 	if (sc->sc_tx_pending > 0) {
 		sc->sc_tx_pending -= count;
 		if (sc->sc_tx_pending == 0)
 			(*sc->sc_tx_intr)(sc->sc_tx_intrarg);
 	}
-	mutex_spin_exit(&sc->sc_intr_lock);
+	mutex_exit(&sc->sc_intr_lock);
 }
 
 static void
@@ -526,7 +526,7 @@ btsco_sco_input(void *arg, struct mbuf *
 
 	DPRINTFN(10, "%s len=%d\n", sc->sc_name, m->m_pkthdr.len);
 
-	mutex_spin_enter(&sc->sc_intr_lock);
+	mutex_enter(&sc->sc_intr_lock);
 	if (sc->sc_rx_want == 0) {
 		m_freem(m);
 	} else {
@@ -552,7 +552,7 @@ btsco_sco_input(void *arg, struct mbuf *
 		if (sc->sc_rx_want == 0)
 			(*sc->sc_rx_intr)(sc->sc_rx_intrarg);
 	}
-	mutex_spin_exit(&sc->sc_intr_lock);
+	mutex_exit(&sc->sc_intr_lock);
 }
 
 

Reply via email to