From 58bb7856fb4625ab5a81e34630eedcb44a3c3c18 Mon Sep 17 00:00:00 2001 From: Chas Williams Date: Tue, 26 Jul 2005 18:42:25 +0000 Subject: [PATCH] STABLE14-linux-reduce-stack-use-20050726 FIXES 20337 don't do pointless work in osi_NetSend, and save some stack (cherry picked from commit a21fc56daf70d0433276eab29798542f6ef362ad) --- src/rx/LINUX/rx_knet.c | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/src/rx/LINUX/rx_knet.c b/src/rx/LINUX/rx_knet.c index 8103b4d1de..7cddc228c0 100644 --- a/src/rx/LINUX/rx_knet.c +++ b/src/rx/LINUX/rx_knet.c @@ -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;