Module Name: src Committed By: oki Date: Thu Oct 14 03:07:52 UTC 2010
Modified Files: src/sys/kern: uipc_socket.c Log Message: Wait for freeing mbuf cluster in sosend() causes freeze network stack. Don't wait for it. problem was found by iij seil team. it is similar to OpenBSD uipc_socket.c rev.1.72. To generate a diff of this commit: cvs rdiff -u -r1.200 -r1.201 src/sys/kern/uipc_socket.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/kern/uipc_socket.c diff -u src/sys/kern/uipc_socket.c:1.200 src/sys/kern/uipc_socket.c:1.201 --- src/sys/kern/uipc_socket.c:1.200 Wed Dec 30 22:12:12 2009 +++ src/sys/kern/uipc_socket.c Thu Oct 14 03:07:51 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: uipc_socket.c,v 1.200 2009/12/30 22:12:12 elad Exp $ */ +/* $NetBSD: uipc_socket.c,v 1.201 2010/10/14 03:07:51 oki Exp $ */ /*- * Copyright (c) 2002, 2007, 2008, 2009 The NetBSD Foundation, Inc. @@ -63,7 +63,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: uipc_socket.c,v 1.200 2009/12/30 22:12:12 elad Exp $"); +__KERNEL_RCSID(0, "$NetBSD: uipc_socket.c,v 1.201 2010/10/14 03:07:51 oki Exp $"); #include "opt_compat_netbsd.h" #include "opt_sock_counters.h" @@ -1022,7 +1022,7 @@ } if (resid >= MINCLSIZE && space >= MCLBYTES) { SOSEND_COUNTER_INCR(&sosend_copy_big); - m_clget(m, M_WAIT); + m_clget(m, M_DONTWAIT); if ((m->m_flags & M_EXT) == 0) goto nopages; mlen = MCLBYTES;