summaryrefslogtreecommitdiffstats
path: root/sys/i4b/capi
diff options
context:
space:
mode:
authorgj <gj@FreeBSD.org>2001-12-30 09:27:28 +0000
committergj <gj@FreeBSD.org>2001-12-30 09:27:28 +0000
commit3b3e08589b03552b648f4950664eb7822534a8fa (patch)
tree9165e9b336cd095a979269760b6936b342271161 /sys/i4b/capi
parent63f2243d7991b37afaf5ce4bcaebc637bc140d17 (diff)
downloadFreeBSD-src-3b3e08589b03552b648f4950664eb7822534a8fa.zip
FreeBSD-src-3b3e08589b03552b648f4950664eb7822534a8fa.tar.gz
Protect mtx_init() invocations with mtx_intialized() checks to avoid a
reported panic. Submitted by: Alexander Leidinger <Alexander@Leidinger.net> (partly) MFC after: 4 weeks
Diffstat (limited to 'sys/i4b/capi')
-rw-r--r--sys/i4b/capi/capi_l4if.c6
-rw-r--r--sys/i4b/capi/iavc/iavc_isa.c3
-rw-r--r--sys/i4b/capi/iavc/iavc_pci.c3
3 files changed, 8 insertions, 4 deletions
diff --git a/sys/i4b/capi/capi_l4if.c b/sys/i4b/capi/capi_l4if.c
index 9cb05f2..5460ffb 100644
--- a/sys/i4b/capi/capi_l4if.c
+++ b/sys/i4b/capi/capi_l4if.c
@@ -240,8 +240,10 @@ capi_ll_attach(capi_softc_t *sc)
sc->sc_bchan[i].rx_queue.ifq_maxlen = IFQ_MAXLEN;
#if defined (__FreeBSD__) && __FreeBSD__ > 4
- mtx_init(&sc->sc_bchan[i].tx_queue.ifq_mtx, "i4b_capi_tx", MTX_DEF);
- mtx_init(&sc->sc_bchan[i].rx_queue.ifq_mtx, "i4b_capi_rx", MTX_DEF);
+ if(!mtx_initialized(&sc->sc_bchan[i].tx_queue.ifq_mtx))
+ mtx_init(&sc->sc_bchan[i].tx_queue.ifq_mtx, "i4b_capi_tx", MTX_DEF);
+ if(!mtx_initialized(&sc->sc_bchan[i].rx_queue.ifq_mtx))
+ mtx_init(&sc->sc_bchan[i].rx_queue.ifq_mtx, "i4b_capi_rx", MTX_DEF);
#endif
sc->sc_bchan[i].txcount = 0;
diff --git a/sys/i4b/capi/iavc/iavc_isa.c b/sys/i4b/capi/iavc/iavc_isa.c
index 96ea1c9..b4cfaba 100644
--- a/sys/i4b/capi/iavc/iavc_isa.c
+++ b/sys/i4b/capi/iavc/iavc_isa.c
@@ -225,7 +225,8 @@ iavc_isa_attach(device_t dev)
sc->sc_txq.ifq_maxlen = sc->sc_capi.sc_nbch * 4;
#if defined (__FreeBSD__) && __FreeBSD__ > 4
- mtx_init(&sc->sc_txq.ifq_mtx, "i4b_ivac_isa", MTX_DEF);
+ if(!mtx_initialized(&sc->sc_txq.ifq_mtx))
+ mtx_init(&sc->sc_txq.ifq_mtx, "i4b_ivac_isa", MTX_DEF);
#endif
sc->sc_intr = FALSE;
diff --git a/sys/i4b/capi/iavc/iavc_pci.c b/sys/i4b/capi/iavc/iavc_pci.c
index 5579a3c..12de906 100644
--- a/sys/i4b/capi/iavc/iavc_pci.c
+++ b/sys/i4b/capi/iavc/iavc_pci.c
@@ -236,7 +236,8 @@ iavc_pci_attach(device_t dev)
sc->sc_txq.ifq_maxlen = sc->sc_capi.sc_nbch * 4;
#if defined (__FreeBSD__) && __FreeBSD__ > 4
- mtx_init(&sc->sc_txq.ifq_mtx, "i4b_ivac_pci", MTX_DEF);
+ if(!mtx_initialized(&sc->sc_txq.ifq_mtx))
+ mtx_init(&sc->sc_txq.ifq_mtx, "i4b_ivac_pci", MTX_DEF);
#endif
sc->sc_intr = FALSE;
OpenPOWER on IntegriCloud