linux-reduce-stack-use-20050726
authorChas Williams <chas@cmf.nrl.navy.mil>
Tue, 26 Jul 2005 18:34:05 +0000 (18:34 +0000)
committerDerrick Brashear <shadow@dementia.org>
Tue, 26 Jul 2005 18:34:05 +0000 (18:34 +0000)
FIXES 20337

don't do pointless work in osi_NetSend, and save some stack

src/rx/LINUX/rx_knet.c

index 8103b4d..7cddc22 100644 (file)
@@ -95,27 +95,15 @@ rxk_FreeSocket(register struct socket *asocket)
  * non-zero = failure
  */
 int
-osi_NetSend(osi_socket sop, struct sockaddr_in *to, struct iovec *iov,
+osi_NetSend(osi_socket sop, struct sockaddr_in *to, struct iovec *iovec,
            int iovcnt, afs_int32 size, int istack)
 {
     KERNEL_SPACE_DECL;
     struct msghdr msg;
     int code;
-    struct iovec tmpvec[RX_MAXWVECS + 2];
-
-    if (iovcnt > RX_MAXWVECS + 2) {
-       osi_Panic("Too many (%d) iovecs passed to osi_NetSend\n", iovcnt);
-    }
 
-    if (iovcnt <= 2) {         /* avoid pointless uiomove */
-       tmpvec[0].iov_base = iov[0].iov_base;
-       tmpvec[0].iov_len = size;
-       msg.msg_iovlen = 1;
-    } else {
-       memcpy(tmpvec, iov, iovcnt * sizeof(struct iovec));
-       msg.msg_iovlen = iovcnt;
-    }
-    msg.msg_iov = tmpvec;
+    msg.msg_iovlen = iovcnt;
+    msg.msg_iov = iovec;
     msg.msg_name = to;
     msg.msg_namelen = sizeof(*to);
     msg.msg_control = NULL;