Source-Changes-HG archive

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

[src/trunk]: src/sys/net Don't call psref_target_destroy unless NET_MPSAFE



details:   https://anonhg.NetBSD.org/src/rev/b36536196f84
branches:  trunk
changeset: 819875:b36536196f84
user:      ozaki-r <ozaki-r%NetBSD.org@localhost>
date:      Wed Dec 21 04:01:57 2016 +0000

description:
Don't call psref_target_destroy unless NET_MPSAFE

We don't need it if NET_MPSAFE off and also it causes lockup
sometimes because of calling it with holding softnet_lock.

diffstat:

 sys/net/route.c |  6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diffs (28 lines):

diff -r e5f4e8dbadb3 -r b36536196f84 sys/net/route.c
--- a/sys/net/route.c   Wed Dec 21 03:13:00 2016 +0000
+++ b/sys/net/route.c   Wed Dec 21 04:01:57 2016 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: route.c,v 1.184 2016/12/21 00:33:49 ozaki-r Exp $      */
+/*     $NetBSD: route.c,v 1.185 2016/12/21 04:01:57 ozaki-r Exp $      */
 
 /*-
  * Copyright (c) 1998, 2008 The NetBSD Foundation, Inc.
@@ -97,7 +97,7 @@
 #endif
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: route.c,v 1.184 2016/12/21 00:33:49 ozaki-r Exp $");
+__KERNEL_RCSID(0, "$NetBSD: route.c,v 1.185 2016/12/21 04:01:57 ozaki-r Exp $");
 
 #include <sys/param.h>
 #ifdef RTFLUSH_DEBUG
@@ -695,7 +695,9 @@
        RT_REFCNT_TRACE(rt);
        KASSERTMSG(rt->rt_refcnt >= 0, "refcnt=%d", rt->rt_refcnt);
        rt_wait_refcnt("free", rt, 0);
+#ifdef NET_MPSAFE
        psref_target_destroy(&rt->rt_psref, rt_psref_class);
+#endif
 
        rt_assert_inactive(rt);
        rttrash--;



Home | Main Index | Thread Index | Old Index