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)
This commit is contained in:
Chas Williams 2005-07-26 18:42:25 +00:00 committed by Derrick Brashear
parent 87dbfa307a
commit 58bb7856fb

View 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;