diff options
Diffstat (limited to 'sys/i4b/layer1/ihfc/i4b_ihfc_drv.c')
-rw-r--r-- | sys/i4b/layer1/ihfc/i4b_ihfc_drv.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/sys/i4b/layer1/ihfc/i4b_ihfc_drv.c b/sys/i4b/layer1/ihfc/i4b_ihfc_drv.c index 814a40a..7a01014 100644 --- a/sys/i4b/layer1/ihfc/i4b_ihfc_drv.c +++ b/sys/i4b/layer1/ihfc/i4b_ihfc_drv.c @@ -351,13 +351,14 @@ ihfc_init (ihfc_sc_t *sc, u_char chan, int prot, int activate) do { if (chan < 2) /* D-Channel */ { + S_IFQUEUE.ifq_maxlen = IFQ_MAXLEN; + mtx_init(&S_IFQUEUE.ifq_mtx, "i4b_ihfc", MTX_DEF); + i4b_Dfreembuf(S_MBUF); i4b_Dcleanifq(&S_IFQUEUE); RESET_SOFT_CHAN(sc, chan); - S_IFQUEUE.ifq_maxlen = IFQ_MAXLEN; - if (!activate) continue; if (S_HFC & HFC_1) @@ -373,13 +374,15 @@ ihfc_init (ihfc_sc_t *sc, u_char chan, int prot, int activate) } else /* B-Channel */ { + S_IFQUEUE.ifq_maxlen = IFQ_MAXLEN; + mtx_init(&S_IFQUEUE.ifq_mtx, "i4b_ihfc", MTX_DEF); + i4b_Bfreembuf(S_MBUF); i4b_Bcleanifq(&S_IFQUEUE); RESET_SOFT_CHAN(sc, chan); S_PROT = prot; - S_IFQUEUE.ifq_maxlen = IFQ_MAXLEN; if (!activate) continue; |