Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 14 Dec 1998 22:17:03 PST
From:      Bill Fenner <fenner@parc.xerox.com>
To:        Michael Robinson <robinson@netrinsics.com>
Cc:        fenner@parc.xerox.com, freebsd-net@FreeBSD.ORG, freebsd-stable@FreeBSD.ORG
Subject:   Re: MLEN < write length < MINCLSIZE "bug" 
Message-ID:  <98Dec14.221911pst.177534@crevenia.parc.xerox.com>
In-Reply-To: Your message of "Tue, 15 Dec 98 05:40:42 PST." <199812151340.NAA07127@netrinsics.com> 

next in thread | previous in thread | raw e-mail | index | archive | help
Hm.  After looking into this a little further, I discovered that I've
been running a slightly modified version of my original patch on my
home 2.2.6 machine (running X and everything) for about 5 months and
haven't noticed any of the problems that people were reporting.

Would you mind trying this patch?

  Bill

--- uipc_socket.c.orig	Tue Jun 30 23:03:30 1998
+++ uipc_socket.c	Sat Jul 18 12:32:26 1998
@@ -340,6 +340,7 @@
 	register long space, len, resid;
 	int clen = 0, error, s, dontroute, mlen;
 	int atomic = sosendallatonce(so) || top;
+	int small = 0;
 
 	if (uio)
 		resid = uio->uio_resid;
@@ -443,6 +444,7 @@
 				mlen = MCLBYTES;
 				len = min(min(mlen, resid), space);
 			} else {
+				small = 1;
 nopages:
 				len = min(min(mlen, resid), space);
 				/*
@@ -466,7 +468,7 @@
 					top->m_flags |= M_EOR;
 				break;
 			}
-		    } while (space > 0 && atomic);
+		    } while (space > 0 && (atomic || small));
 		    if (dontroute)
 			    so->so_options |= SO_DONTROUTE;
 		    s = splnet();				/* XXX */

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?98Dec14.221911pst.177534>