[svn-commits] mattf: branch mattf/zaptel-1.4-stackcleanup r4148 - /team/mattf/zaptel-1.4-st...

SVN commits to the Digium repositories svn-commits at lists.digium.com
Sat Apr 5 15:01:08 CDT 2008


Author: mattf
Date: Sat Apr  5 15:01:07 2008
New Revision: 4148

URL: http://svn.digium.com/view/zaptel?view=rev&rev=4148
Log:
Reduce zt_ctl_ioctl common stack by approximately 340 bytes

Modified:
    team/mattf/zaptel-1.4-stackcleanup/kernel/zaptel-base.c

Modified: team/mattf/zaptel-1.4-stackcleanup/kernel/zaptel-base.c
URL: http://svn.digium.com/view/zaptel/team/mattf/zaptel-1.4-stackcleanup/kernel/zaptel-base.c?view=diff&rev=4148&r1=4147&r2=4148
==============================================================================
--- team/mattf/zaptel-1.4-stackcleanup/kernel/zaptel-base.c (original)
+++ team/mattf/zaptel-1.4-stackcleanup/kernel/zaptel-base.c Sat Apr  5 15:01:07 2008
@@ -3536,9 +3536,6 @@
 {
 	/* I/O CTL's for control interface */
 	int i,j;
-	struct zt_lineconfig lc;
-	struct zt_chanconfig ch;
-	struct zt_sfconfig sf;
 	int sigcap;
 	int res = 0;
 	int x,y;
@@ -3546,7 +3543,6 @@
 	struct zt_dialparams tdp;
 	struct zt_maintinfo maint;
 	struct zt_indirect_data ind;
-	struct zt_versioninfo vi;
 	unsigned long flags;
 	int rv;
 	switch(cmd) {
@@ -3556,6 +3552,9 @@
 		VALID_CHANNEL(ind.chan);
 		return zt_chan_ioctl(inode, file, ind.op, (unsigned long) ind.data, ind.chan);
 	case ZT_SPANCONFIG:
+	{
+		struct zt_lineconfig lc;
+
 		if (copy_from_user(&lc, (struct zt_lineconfig *)data, sizeof(lc)))
 			return -EFAULT;
 		VALID_SPAN(lc.span);
@@ -3570,6 +3569,7 @@
 			return spans[lc.span]->spanconfig(spans[lc.span], &lc);
 		}
 		return 0;
+	}
 	case ZT_STARTUP:
 		CHECK_VALID_SPAN(j);
 		if (spans[j]->flags & ZT_FLAG_RUNNING)
@@ -3596,6 +3596,9 @@
 		spans[j]->flags &= ~ZT_FLAG_RUNNING;
 		return 0;
 	case ZT_CHANCONFIG:
+	{
+		struct zt_chanconfig ch;
+
 		if (copy_from_user(&ch, (struct zt_chanconfig *)data, sizeof(ch)))
 			return -EFAULT;
 		VALID_CHANNEL(ch.chan);
@@ -3631,7 +3634,7 @@
 			free_netdev(chans[ch.chan]->hdlcnetdev->netdev);
 #else
 			unregister_hdlc_device(&chans[ch.chan]->hdlcnetdev->netdev);
-#endif			
+#endif				
 			kfree(chans[ch.chan]->hdlcnetdev);
 			chans[ch.chan]->hdlcnetdev = NULL;
 			chans[ch.chan]->flags &= ~ZT_FLAG_NETDEV;
@@ -3642,7 +3645,7 @@
 				printk(KERN_WARNING "Zaptel networking not supported by this build.\n");
 				return -ENOSYS;
 		}
-#endif		
+#endif			
 		sigcap = chans[ch.chan]->sigcap;
 		/* If they support clear channel, then they support the HDLC and such through
 		   us.  */
@@ -3770,7 +3773,7 @@
 				res = -1;
 			}
 		}
-#endif		
+#endif			
 		if ((chans[ch.chan]->sig == ZT_SIG_HDLCNET) && 
 		    (chans[ch.chan] == newmaster) &&
 		    !(chans[ch.chan]->flags & ZT_FLAG_NETDEV))
@@ -3791,10 +3794,14 @@
 		}
 #ifdef CONFIG_ZAPATA_DEBUG
 		printk("Configured channel %s, flags %04x, sig %04x\n", chans[ch.chan]->name, chans[ch.chan]->flags, chans[ch.chan]->sig);
-#endif		
+#endif			
 		spin_unlock_irqrestore(&chans[ch.chan]->lock, flags);
 		return res;
+	}
 	case ZT_SFCONFIG:
+	{
+		struct zt_sfconfig sf;
+
 		if (copy_from_user(&sf, (struct zt_chanconfig *)data, sizeof(sf)))
 			return -EFAULT;
 		VALID_CHANNEL(sf.chan);
@@ -3821,6 +3828,7 @@
 		}
 		spin_unlock_irqrestore(&chans[sf.chan]->lock, flags);
 		return res;
+	}
 	case ZT_DEFAULTZONE:
 		if (get_user(j,(int *)data))
 			return -EFAULT;
@@ -3880,12 +3888,16 @@
 			return -EFAULT;
 		break;
 	case ZT_GETVERSION:
+	{
+		struct zt_versioninfo vi;
+
 		memset(&vi, 0, sizeof(vi));
 		zap_copy_string(vi.version, ZAPTEL_VERSION, sizeof(vi.version));
 		echo_can_identify(vi.echo_canceller, sizeof(vi.echo_canceller) - 1);
 		if (copy_to_user((struct zt_versioninfo *) data, &vi, sizeof(vi)))
 			return -EFAULT;
 		break;
+	}
 	case ZT_MAINT:  /* do maintenance stuff */
 		  /* get struct from user */
 		if (copy_from_user(&maint,(struct zt_maintinfo *) data, sizeof(maint)))




More information about the svn-commits mailing list