diff options
author | gj <gj@FreeBSD.org> | 2001-12-30 09:27:28 +0000 |
---|---|---|
committer | gj <gj@FreeBSD.org> | 2001-12-30 09:27:28 +0000 |
commit | 3b3e08589b03552b648f4950664eb7822534a8fa (patch) | |
tree | 9165e9b336cd095a979269760b6936b342271161 /sys/i4b/capi | |
parent | 63f2243d7991b37afaf5ce4bcaebc637bc140d17 (diff) | |
download | FreeBSD-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.c | 6 | ||||
-rw-r--r-- | sys/i4b/capi/iavc/iavc_isa.c | 3 | ||||
-rw-r--r-- | sys/i4b/capi/iavc/iavc_pci.c | 3 |
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; |