diff options
author | Kevin P. Fleming <kpfleming@digium.com> | 2008-07-02 13:31:31 +0000 |
---|---|---|
committer | Kevin P. Fleming <kpfleming@digium.com> | 2008-07-02 13:31:31 +0000 |
commit | 1340abc2e710509a9bbe8ca720c91eff896c3d33 (patch) | |
tree | 3d2cffb2090c445da8b3b8e741543c0287a2cc60 /drivers/dahdi/xpp/card_fxs.c | |
parent | ef05eedbe6bffbdaaee55f26b0c54a06fd32b6f2 (diff) |
break up large memory allocations made by digital span drivers into smaller ones (one allocation for each dahdi_chan structure, separate from any private structures used by the driver)
(closes issue #12657)
Reported by: tzafrir
git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@4513 a0bf4364-ded3-4de4-8d8a-66a801d63aff
Diffstat (limited to 'drivers/dahdi/xpp/card_fxs.c')
-rw-r--r-- | drivers/dahdi/xpp/card_fxs.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/dahdi/xpp/card_fxs.c b/drivers/dahdi/xpp/card_fxs.c index ac89204..cabda03 100644 --- a/drivers/dahdi/xpp/card_fxs.c +++ b/drivers/dahdi/xpp/card_fxs.c @@ -479,7 +479,7 @@ static int FXS_card_dahdi_preregistration(xpd_t *xpd, bool on) XPD_DBG(GENERAL, xpd, "%s\n", (on)?"on":"off"); xpd->span.spantype = "FXS"; for_each_line(xpd, i) { - struct dahdi_chan *cur_chan = &xpd->chans[i]; + struct dahdi_chan *cur_chan = xpd->chans[i]; XPD_DBG(GENERAL, xpd, "setting FXS channel %d\n", i); if(IS_SET(xpd->digital_outputs, i)) { @@ -651,7 +651,7 @@ static int FXS_card_hooksig(xbus_t *xbus, xpd_t *xpd, int pos, dahdi_txsig_t txs return 0; } if(SPAN_REGISTERED(xpd)) - chan = &xpd->span.chans[pos]; + chan = xpd->span.chans[pos]; switch(txsig) { case DAHDI_TXSIG_ONHOOK: spin_lock_irqsave(&xpd->lock, flags); @@ -998,7 +998,7 @@ static void detect_vmwi(xpd_t *xpd) priv = xpd->priv; BUG_ON(!priv); for_each_line(xpd, i) { - struct dahdi_chan *chan = &xpd->span.chans[i]; + struct dahdi_chan *chan = xpd->span.chans[i]; byte *writechunk = chan->writechunk; if(IS_SET(xpd->offhook | xpd->cid_on | xpd->digital_inputs | xpd->digital_outputs, i)) @@ -1234,7 +1234,7 @@ static void process_dtmf(xpd_t *xpd, xpp_line_t lines, byte val) __do_mute_dtmf(xpd, i, 0); __pcm_recompute(xpd, 0); /* XPD is locked */ if(want_event) - dahdi_qevent_lock(&xpd->chans[i], event | digit); + dahdi_qevent_lock(xpd->chans[i], event | digit); break; } } |