Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/kern Wait for freeing mbuf cluster in sosend() causes fr...



details:   https://anonhg.NetBSD.org/src/rev/6f565af69a20
branches:  trunk
changeset: 758015:6f565af69a20
user:      oki <oki%NetBSD.org@localhost>
date:      Thu Oct 14 03:07:51 2010 +0000

description:
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.

diffstat:

 sys/kern/uipc_socket.c |  6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diffs (27 lines):

diff -r e128a3ee977f -r 6f565af69a20 sys/kern/uipc_socket.c
--- a/sys/kern/uipc_socket.c    Thu Oct 14 00:47:16 2010 +0000
+++ b/sys/kern/uipc_socket.c    Thu Oct 14 03:07:51 2010 +0000
@@ -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;



Home | Main Index | Thread Index | Old Index