summaryrefslogtreecommitdiff
path: root/drivers/dahdi/wcb4xxp
diff options
context:
space:
mode:
authorShaun Ruffell <sruffell@digium.com>2008-12-17 15:57:56 +0000
committerShaun Ruffell <sruffell@digium.com>2008-12-17 15:57:56 +0000
commitfc2298b94251437cb10313ca48c133655c3f7d7b (patch)
tree5d7b53a7be3f55cbb9be0b09e13e128ee0590c28 /drivers/dahdi/wcb4xxp
parent546f03bcf76ba26c46f7a9407382c38284f3ec40 (diff)
wcb4xxp: Do not propogate received HDLC frames on channels that are not
configured. Issue: DAHDI-217 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@5576 a0bf4364-ded3-4de4-8d8a-66a801d63aff
Diffstat (limited to 'drivers/dahdi/wcb4xxp')
-rw-r--r--drivers/dahdi/wcb4xxp/base.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/dahdi/wcb4xxp/base.c b/drivers/dahdi/wcb4xxp/base.c
index 6f23206..27903ad 100644
--- a/drivers/dahdi/wcb4xxp/base.c
+++ b/drivers/dahdi/wcb4xxp/base.c
@@ -1579,7 +1579,8 @@ static int hdlc_rx_frame(struct b4xxp_span *bspan)
spin_unlock_irqrestore(&b4->fifolock, irq_flags);
/* don't send STAT byte to DAHDI */
- dahdi_hdlc_putbuf(bspan->sigchan, buf, (j == WCB4XXP_HDLC_BUF_LEN) ? j : j - 1);
+ if (bspan->sigchan)
+ dahdi_hdlc_putbuf(bspan->sigchan, buf, (j == WCB4XXP_HDLC_BUF_LEN) ? j : j - 1);
zleft -= j;
if (DBG_HDLC && DBG_SPANFILTER) {
@@ -1595,6 +1596,11 @@ static int hdlc_rx_frame(struct b4xxp_span *bspan)
get_F(f1, f2, flen);
spin_unlock_irqrestore(&b4->fifolock, irq_flags);
+ /* If this channel is not configured with a signalling span we don't
+ * need to notify the rest of dahdi about this frame. */
+ if (!bspan->sigchan)
+ return flen;
+
++bspan->frames_in;
if (zlen < 3) {
if (DBG_HDLC && DBG_SPANFILTER)