Index: uipc_socket.c =================================================================== RCS file: /cvs/src/sys/kern/uipc_socket.c,v retrieving revision 1.135 diff -u -p -r1.135 uipc_socket.c --- uipc_socket.c 11 Dec 2014 19:21:57 -0000 1.135 +++ uipc_socket.c 22 Dec 2014 01:11:03 -0000 @@ -493,15 +493,18 @@ restart: mlen = MLEN; } if (resid >= MINCLSIZE && space >= MCLBYTES) { - MCLGET(m, M_NOWAIT); + MCLGETI(m, M_NOWAIT, NULL, lmin(resid, + lmin(space, MAXMCLBYTES))); if ((m->m_flags & M_EXT) == 0) goto nopages; if (atomic && top == 0) { - len = lmin(MCLBYTES - max_hdr, - resid); + len = lmin(resid, + m->m_ext.ext_size - + max_hdr); m->m_data += max_hdr; } else - len = lmin(MCLBYTES, resid); + len = lmin(resid, + m->m_ext.ext_size); space -= len; } else { nopages: