[svn-commits] sruffell: linux/trunk r9600 - in /linux/trunk: drivers/dahdi/ include/dahdi/

SVN commits to the Digium repositories svn-commits at lists.digium.com
Mon Jan 3 18:27:39 UTC 2011


Author: sruffell
Date: Mon Jan  3 12:27:36 2011
New Revision: 9600

URL: http://svnview.digium.com/svn/dahdi?view=rev&rev=9600
Log:
dahdi: Change dahdi_chan.nextslave from index to a pointer.

Signed-off-by: Shaun Ruffell <sruffell at digium.com>
Acked-by: Kinsey Moore <kmoore at digium.com>

Modified:
    linux/trunk/drivers/dahdi/dahdi-base.c
    linux/trunk/include/dahdi/kernel.h

Modified: linux/trunk/drivers/dahdi/dahdi-base.c
URL: http://svnview.digium.com/svn/dahdi/linux/trunk/drivers/dahdi/dahdi-base.c?view=diff&rev=9600&r1=9599&r2=9600
==============================================================================
--- linux/trunk/drivers/dahdi/dahdi-base.c (original)
+++ linux/trunk/drivers/dahdi/dahdi-base.c Mon Jan  3 12:27:36 2011
@@ -4258,11 +4258,11 @@
 			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 @@
 
 		/* 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 @@
 
 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 @@
 			} 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 @@
 
 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 @@
 				/* 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 */

Modified: linux/trunk/include/dahdi/kernel.h
URL: http://svnview.digium.com/svn/dahdi/linux/trunk/include/dahdi/kernel.h?view=diff&rev=9600&r1=9599&r2=9600
==============================================================================
--- linux/trunk/include/dahdi/kernel.h (original)
+++ linux/trunk/include/dahdi/kernel.h Mon Jan  3 12:27:36 2011
@@ -424,7 +424,7 @@
 
 	struct dahdi_chan *master;	/*!< Our Master channel (could be us) */
 	/*! \brief Next slave (if appropriate) */
-	int nextslave;
+	struct dahdi_chan *nextslave;
 
 	u_char *writechunk;						/*!< Actual place to write to */
 	u_char swritechunk[DAHDI_MAX_CHUNKSIZE];	/*!< Buffer to be written */




More information about the svn-commits mailing list