## Automatically generated incremental diff
## From:   linux-2.4.22-bk17
## To:     linux-2.4.22-bk18
## Robot:  $Id: make-incremental-diff,v 1.11 2002/02/20 02:59:33 hpa Exp $

diff -urN linux-2.4.22-bk17/Makefile linux-2.4.22-bk18/Makefile
--- linux-2.4.22-bk17/Makefile	2003-09-15 03:09:43.000000000 -0700
+++ linux-2.4.22-bk18/Makefile	2003-09-15 03:10:15.000000000 -0700
@@ -1,7 +1,7 @@
 VERSION = 2
 PATCHLEVEL = 4
 SUBLEVEL = 22
-EXTRAVERSION = -bk17
+EXTRAVERSION = -bk18
 
 KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
 
diff -urN linux-2.4.22-bk17/net/sunrpc/svcsock.c linux-2.4.22-bk18/net/sunrpc/svcsock.c
--- linux-2.4.22-bk17/net/sunrpc/svcsock.c	2003-09-15 03:10:12.000000000 -0700
+++ linux-2.4.22-bk18/net/sunrpc/svcsock.c	2003-09-15 03:10:25.000000000 -0700
@@ -317,9 +317,9 @@
 	struct svc_sock	*svsk = rqstp->rq_sock;
 	struct socket	*sock = svsk->sk_sock;
 	struct msghdr	msg;
-	struct { struct cmsghdr cmh;
-		struct in_pktinfo pki;
-	} cm;
+	char 		buffer[CMSG_SPACE(sizeof(struct in_pktinfo))];
+	struct cmsghdr *cmh = (struct cmsghdr *)buffer;
+	struct in_pktinfo *pki = (struct in_pktinfo *)CMSG_DATA(cmh);
 	int		i, buflen, len;
 
 	for (i = buflen = 0; i < nr; i++)
@@ -330,13 +330,13 @@
 	msg.msg_iov     = iov;
 	msg.msg_iovlen  = nr;
 	if (rqstp->rq_prot == IPPROTO_UDP) {
-		msg.msg_control = &cm;
-		msg.msg_controllen = sizeof(cm);
-		cm.cmh.cmsg_len = sizeof(cm);
-		cm.cmh.cmsg_level = SOL_IP;
-		cm.cmh.cmsg_type = IP_PKTINFO;
-		cm.pki.ipi_ifindex = 0;
-		cm.pki.ipi_spec_dst.s_addr = rqstp->rq_daddr;
+		msg.msg_control = cmh;
+		msg.msg_controllen = sizeof(buffer);
+		cmh->cmsg_len = CMSG_LEN(sizeof(*pki));
+		cmh->cmsg_level = SOL_IP;
+		cmh->cmsg_type = IP_PKTINFO;
+		pki->ipi_ifindex = 0;
+		pki->ipi_spec_dst.s_addr = rqstp->rq_daddr;
 	} else {
 		msg.msg_control = NULL;
 		msg.msg_controllen = 0;
