diff options
author | Shaun Ruffell <sruffell@digium.com> | 2011-01-03 18:27:36 +0000 |
---|---|---|
committer | Shaun Ruffell <sruffell@digium.com> | 2011-01-03 18:27:36 +0000 |
commit | a775a22eb49f8ea38393ed2d7187c878f57000d9 (patch) | |
tree | 560b9ca19150e58e84a9bd65f6ec8940f2fa28b7 /drivers/dahdi | |
parent | 8dba5fc03cf032f6274eb7d36f3fc6d6a365e450 (diff) |
dahdi: Change dahdi_chan.nextslave from index to a pointer.
Signed-off-by: Shaun Ruffell <sruffell@digium.com>
Acked-by: Kinsey Moore <kmoore@digium.com>
git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@9600 a0bf4364-ded3-4de4-8d8a-66a801d63aff
Diffstat (limited to 'drivers/dahdi')
-rw-r--r-- | drivers/dahdi/dahdi-base.c | 38 |
1 files changed, 19 insertions, 19 deletions
diff --git a/drivers/dahdi/dahdi-base.c b/drivers/dahdi/dahdi-base.c index 5eeb2a5..1e0e341 100644 --- a/drivers/dahdi/dahdi-base.c +++ b/drivers/dahdi/dahdi-base.c @@ -4258,11 +4258,11 @@ static void recalc_slaves(struct dahdi_chan *chan) module_printk(KERN_NOTICE, "Channel %s, slave to %s, last is %s, its next will be %d\n", chan->span->chans[x]->name, chan->name, last->name, x); #endif - last->nextslave = x; - last = chan->span->chans[x]; + last->nextslave = chan->span->chans[x]; + last = last->nextslave; } /* Terminate list */ - last->nextslave = 0; + last->nextslave = NULL; #ifdef CONFIG_DAHDI_DEBUG module_printk(KERN_NOTICE, "Done Recalculating slaves on %s (last is %s)\n", chan->name, last->name); #endif @@ -4345,7 +4345,7 @@ static int dahdi_ioctl_chanconfig(struct file *file, unsigned long data) /* Clear the master channel */ chan->master = chan; - chan->nextslave = 0; + chan->nextslave = NULL; /* Unlink this channel from the master's channel list */ recalc_slaves(oldmaster); } @@ -8538,8 +8538,8 @@ static inline void __dahdi_real_receive(struct dahdi_chan *chan) int dahdi_transmit(struct dahdi_span *span) { - int x,y,z; unsigned long flags; + unsigned int x; local_irq_save(flags); @@ -8561,20 +8561,20 @@ int dahdi_transmit(struct dahdi_span *span) } else { if (chan->nextslave) { u_char data[DAHDI_CHUNKSIZE]; - int pos=DAHDI_CHUNKSIZE; + int pos = DAHDI_CHUNKSIZE; + int y; + struct dahdi_chan *z; /* Process master/slaves one way */ - for (y=0;y<DAHDI_CHUNKSIZE;y++) { + for (y = 0; y < DAHDI_CHUNKSIZE; y++) { /* Process slaves for this byte too */ - z = x; - do { - if (pos==DAHDI_CHUNKSIZE) { + for (z = chan; z; z = z->nextslave) { + if (pos == DAHDI_CHUNKSIZE) { /* Get next chunk */ __dahdi_transmit_chunk(chan, data); pos = 0; } - span->chans[z]->writechunk[y] = data[pos++]; - z = span->chans[z]->nextslave; - } while(z); + z->writechunk[y] = data[pos++]; + } } } else { /* Process independents elsewise */ @@ -8839,8 +8839,8 @@ static void coretimer_cleanup(void) int dahdi_receive(struct dahdi_span *span) { - int x,y,z; unsigned long flags; + unsigned int x; #ifdef CONFIG_DAHDI_WATCHDOG span->watchcounter--; @@ -8855,18 +8855,18 @@ int dahdi_receive(struct dahdi_span *span) /* Must process each slave at the same time */ u_char data[DAHDI_CHUNKSIZE]; int pos = 0; + int y; + struct dahdi_chan *z; for (y=0;y<DAHDI_CHUNKSIZE;y++) { /* Put all its slaves, too */ - z = x; - do { - data[pos++] = span->chans[z]->readchunk[y]; + for (z = chan; z; z = z->nextslave) { + data[pos++] = z->readchunk[y]; if (pos == DAHDI_CHUNKSIZE) { if (!(chan->flags & DAHDI_FLAG_NOSTDTXRX)) __dahdi_receive_chunk(chan, data); pos = 0; } - z=span->chans[z]->nextslave; - } while(z); + } } } else { /* Process a normal channel */ |