Module Name:    src
Committed By:   martin
Date:           Thu May 17 14:07:04 UTC 2018

Modified Files:
        src/sys/net [netbsd-8]: if_gif.c if_gif.h if_ipsec.c if_ipsec.h
            if_l2tp.c if_l2tp.h
        src/sys/netinet [netbsd-8]: in_gif.c in_l2tp.c
        src/sys/netinet6 [netbsd-8]: in6_gif.c in6_l2tp.c
        src/sys/netipsec [netbsd-8]: ipsecif.c

Log Message:
Pull up following revision(s) (requested by knakahara in ticket #829):

        sys/net/if_l2tp.c: revision 1.24
        sys/net/if_ipsec.c: revision 1.13
        sys/net/if_gif.h: revision 1.31
        sys/netipsec/ipsecif.c: revision 1.8
        sys/net/if_gif.c: revision 1.140
        sys/netinet6/in6_l2tp.c: revision 1.15
        sys/net/if_ipsec.h: revision 1.3
        sys/netinet6/in6_gif.c: revision 1.92
        sys/net/if_l2tp.h: revision 1.5
        sys/netinet/in_l2tp.c: revision 1.13
        sys/netinet/in_gif.c: revision 1.93

Fix LOCKDEBUG kernel panic when many(about 200) tunnel interfaces is created.

The tunnel interfaces are gif(4), l2tp(4), and ipsecif(4). They use mutex
itself in percpu area. When percpu_cpu_enlarge() run, the address of the
mutex in percpu area becomes different from the address which lockdebug
saved. That can cause "already initialized" false detection.


To generate a diff of this commit:
cvs rdiff -u -r1.126.2.9 -r1.126.2.10 src/sys/net/if_gif.c
cvs rdiff -u -r1.25.8.2 -r1.25.8.3 src/sys/net/if_gif.h
cvs rdiff -u -r1.3.2.6 -r1.3.2.7 src/sys/net/if_ipsec.c
cvs rdiff -u -r1.1.2.2 -r1.1.2.3 src/sys/net/if_ipsec.h
cvs rdiff -u -r1.11.2.7 -r1.11.2.8 src/sys/net/if_l2tp.c
cvs rdiff -u -r1.2.2.1 -r1.2.2.2 src/sys/net/if_l2tp.h
cvs rdiff -u -r1.87.8.4 -r1.87.8.5 src/sys/netinet/in_gif.c
cvs rdiff -u -r1.2.8.4 -r1.2.8.5 src/sys/netinet/in_l2tp.c
cvs rdiff -u -r1.85.6.5 -r1.85.6.6 src/sys/netinet6/in6_gif.c
cvs rdiff -u -r1.5.8.4 -r1.5.8.5 src/sys/netinet6/in6_l2tp.c
cvs rdiff -u -r1.1.2.6 -r1.1.2.7 src/sys/netipsec/ipsecif.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/net/if_gif.c
diff -u src/sys/net/if_gif.c:1.126.2.9 src/sys/net/if_gif.c:1.126.2.10
--- src/sys/net/if_gif.c:1.126.2.9	Thu Mar  8 13:22:26 2018
+++ src/sys/net/if_gif.c	Thu May 17 14:07:03 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_gif.c,v 1.126.2.9 2018/03/08 13:22:26 martin Exp $	*/
+/*	$NetBSD: if_gif.c,v 1.126.2.10 2018/05/17 14:07:03 martin Exp $	*/
 /*	$KAME: if_gif.c,v 1.76 2001/08/20 02:01:02 kjc Exp $	*/
 
 /*
@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_gif.c,v 1.126.2.9 2018/03/08 13:22:26 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_gif.c,v 1.126.2.10 2018/05/17 14:07:03 martin Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_inet.h"
@@ -319,7 +319,7 @@ gif_ro_init_pc(void *p, void *arg __unus
 {
 	struct gif_ro *gro = p;
 
-	mutex_init(&gro->gr_lock, MUTEX_DEFAULT, IPL_NONE);
+	gro->gr_lock = mutex_obj_alloc(MUTEX_DEFAULT, IPL_NONE);
 }
 
 static void
@@ -329,7 +329,7 @@ gif_ro_fini_pc(void *p, void *arg __unus
 
 	rtcache_free(&gro->gr_ro);
 
-	mutex_destroy(&gro->gr_lock);
+	mutex_obj_free(gro->gr_lock);
 }
 
 void

Index: src/sys/net/if_gif.h
diff -u src/sys/net/if_gif.h:1.25.8.2 src/sys/net/if_gif.h:1.25.8.3
--- src/sys/net/if_gif.h:1.25.8.2	Tue Jan  2 10:48:51 2018
+++ src/sys/net/if_gif.h	Thu May 17 14:07:03 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_gif.h,v 1.25.8.2 2018/01/02 10:48:51 snj Exp $	*/
+/*	$NetBSD: if_gif.h,v 1.25.8.3 2018/05/17 14:07:03 martin Exp $	*/
 /*	$KAME: if_gif.h,v 1.23 2001/07/27 09:21:42 itojun Exp $	*/
 
 /*
@@ -56,7 +56,7 @@ struct encaptab;
 
 struct gif_ro {
 	struct route gr_ro;
-	kmutex_t gr_lock;
+	kmutex_t *gr_lock;
 };
 
 struct gif_variant {

Index: src/sys/net/if_ipsec.c
diff -u src/sys/net/if_ipsec.c:1.3.2.6 src/sys/net/if_ipsec.c:1.3.2.7
--- src/sys/net/if_ipsec.c:1.3.2.6	Thu May 17 14:02:31 2018
+++ src/sys/net/if_ipsec.c	Thu May 17 14:07:03 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_ipsec.c,v 1.3.2.6 2018/05/17 14:02:31 martin Exp $  */
+/*	$NetBSD: if_ipsec.c,v 1.3.2.7 2018/05/17 14:07:03 martin Exp $  */
 
 /*
  * Copyright (c) 2017 Internet Initiative Japan Inc.
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_ipsec.c,v 1.3.2.6 2018/05/17 14:02:31 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_ipsec.c,v 1.3.2.7 2018/05/17 14:07:03 martin Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_inet.h"
@@ -220,7 +220,7 @@ if_ipsec_ro_init_pc(void *p, void *arg _
 {
 	struct ipsec_ro *iro = p;
 
-	mutex_init(&iro->ir_lock, MUTEX_DEFAULT, IPL_NONE);
+	iro->ir_lock = mutex_obj_alloc(MUTEX_DEFAULT, IPL_NONE);
 }
 
 static void
@@ -230,7 +230,7 @@ if_ipsec_ro_fini_pc(void *p, void *arg _
 
 	rtcache_free(&iro->ir_ro);
 
-	mutex_destroy(&iro->ir_lock);
+	mutex_obj_free(iro->ir_lock);
 }
 
 static int

Index: src/sys/net/if_ipsec.h
diff -u src/sys/net/if_ipsec.h:1.1.2.2 src/sys/net/if_ipsec.h:1.1.2.3
--- src/sys/net/if_ipsec.h:1.1.2.2	Sun Feb 11 21:17:34 2018
+++ src/sys/net/if_ipsec.h	Thu May 17 14:07:03 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_ipsec.h,v 1.1.2.2 2018/02/11 21:17:34 snj Exp $  */
+/*	$NetBSD: if_ipsec.h,v 1.1.2.3 2018/05/17 14:07:03 martin Exp $  */
 
 /*
  * Copyright (c) 2017 Internet Initiative Japan Inc.
@@ -87,7 +87,7 @@ struct ipsec_variant {
 
 struct ipsec_ro {
 	struct route ir_ro;
-	kmutex_t ir_lock;
+	kmutex_t *ir_lock;
 };
 
 struct ipsec_softc {

Index: src/sys/net/if_l2tp.c
diff -u src/sys/net/if_l2tp.c:1.11.2.7 src/sys/net/if_l2tp.c:1.11.2.8
--- src/sys/net/if_l2tp.c:1.11.2.7	Wed Apr 11 14:15:45 2018
+++ src/sys/net/if_l2tp.c	Thu May 17 14:07:03 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_l2tp.c,v 1.11.2.7 2018/04/11 14:15:45 martin Exp $	*/
+/*	$NetBSD: if_l2tp.c,v 1.11.2.8 2018/05/17 14:07:03 martin Exp $	*/
 
 /*
  * Copyright (c) 2017 Internet Initiative Japan Inc.
@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_l2tp.c,v 1.11.2.7 2018/04/11 14:15:45 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_l2tp.c,v 1.11.2.8 2018/05/17 14:07:03 martin Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_inet.h"
@@ -298,7 +298,7 @@ l2tp_ro_init_pc(void *p, void *arg __unu
 {
 	struct l2tp_ro *lro = p;
 
-	mutex_init(&lro->lr_lock, MUTEX_DEFAULT, IPL_NONE);
+	lro->lr_lock = mutex_obj_alloc(MUTEX_DEFAULT, IPL_NONE);
 }
 
 void
@@ -308,7 +308,7 @@ l2tp_ro_fini_pc(void *p, void *arg __unu
 
 	rtcache_free(&lro->lr_ro);
 
-	mutex_destroy(&lro->lr_lock);
+	mutex_obj_free(lro->lr_lock);
 }
 
 static int

Index: src/sys/net/if_l2tp.h
diff -u src/sys/net/if_l2tp.h:1.2.2.1 src/sys/net/if_l2tp.h:1.2.2.2
--- src/sys/net/if_l2tp.h:1.2.2.1	Thu Mar  8 13:41:40 2018
+++ src/sys/net/if_l2tp.h	Thu May 17 14:07:03 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_l2tp.h,v 1.2.2.1 2018/03/08 13:41:40 martin Exp $	*/
+/*	$NetBSD: if_l2tp.h,v 1.2.2.2 2018/05/17 14:07:03 martin Exp $	*/
 
 /*
  * Copyright (c) 2017 Internet Initiative Japan Inc.
@@ -92,7 +92,7 @@ struct l2tp_variant {
 
 struct l2tp_ro {
 	struct route lr_ro;
-	kmutex_t lr_lock;
+	kmutex_t *lr_lock;
 };
 
 struct l2tp_softc {

Index: src/sys/netinet/in_gif.c
diff -u src/sys/netinet/in_gif.c:1.87.8.4 src/sys/netinet/in_gif.c:1.87.8.5
--- src/sys/netinet/in_gif.c:1.87.8.4	Sun Feb 11 21:17:34 2018
+++ src/sys/netinet/in_gif.c	Thu May 17 14:07:04 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: in_gif.c,v 1.87.8.4 2018/02/11 21:17:34 snj Exp $	*/
+/*	$NetBSD: in_gif.c,v 1.87.8.5 2018/05/17 14:07:04 martin Exp $	*/
 /*	$KAME: in_gif.c,v 1.66 2001/07/29 04:46:09 itojun Exp $	*/
 
 /*
@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: in_gif.c,v 1.87.8.4 2018/02/11 21:17:34 snj Exp $");
+__KERNEL_RCSID(0, "$NetBSD: in_gif.c,v 1.87.8.5 2018/05/17 14:07:04 martin Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_inet.h"
@@ -176,10 +176,10 @@ in_gif_output(struct gif_variant *var, i
 
 	sc = var->gv_softc;
 	gro = percpu_getref(sc->gif_ro_percpu);
-	mutex_enter(&gro->gr_lock);
+	mutex_enter(gro->gr_lock);
 	ro = &gro->gr_ro;
 	if ((rt = rtcache_lookup(ro, var->gv_pdst)) == NULL) {
-		mutex_exit(&gro->gr_lock);
+		mutex_exit(gro->gr_lock);
 		percpu_putref(sc->gif_ro_percpu);
 		m_freem(m);
 		return ENETUNREACH;
@@ -189,7 +189,7 @@ in_gif_output(struct gif_variant *var, i
 	if (rt->rt_ifp == ifp) {
 		rtcache_unref(rt, ro);
 		rtcache_free(ro);
-		mutex_exit(&gro->gr_lock);
+		mutex_exit(gro->gr_lock);
 		percpu_putref(sc->gif_ro_percpu);
 		m_freem(m);
 		return ENETUNREACH;	/*XXX*/
@@ -197,7 +197,7 @@ in_gif_output(struct gif_variant *var, i
 	rtcache_unref(rt, ro);
 
 	error = ip_output(m, NULL, ro, 0, NULL, NULL);
-	mutex_exit(&gro->gr_lock);
+	mutex_exit(gro->gr_lock);
 	percpu_putref(sc->gif_ro_percpu);
 	return (error);
 }

Index: src/sys/netinet/in_l2tp.c
diff -u src/sys/netinet/in_l2tp.c:1.2.8.4 src/sys/netinet/in_l2tp.c:1.2.8.5
--- src/sys/netinet/in_l2tp.c:1.2.8.4	Thu Mar  8 13:41:41 2018
+++ src/sys/netinet/in_l2tp.c	Thu May 17 14:07:03 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: in_l2tp.c,v 1.2.8.4 2018/03/08 13:41:41 martin Exp $	*/
+/*	$NetBSD: in_l2tp.c,v 1.2.8.5 2018/05/17 14:07:03 martin Exp $	*/
 
 /*
  * Copyright (c) 2017 Internet Initiative Japan Inc.
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: in_l2tp.c,v 1.2.8.4 2018/03/08 13:41:41 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: in_l2tp.c,v 1.2.8.5 2018/05/17 14:07:03 martin Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_l2tp.h"
@@ -209,9 +209,9 @@ in_l2tp_output(struct l2tp_variant *var,
 	memcpy(mtod(m, struct ip *), &iphdr, sizeof(struct ip));
 
 	lro = percpu_getref(sc->l2tp_ro_percpu);
-	mutex_enter(&lro->lr_lock);
+	mutex_enter(lro->lr_lock);
 	if ((rt = rtcache_lookup(&lro->lr_ro, var->lv_pdst)) == NULL) {
-		mutex_exit(&lro->lr_lock);
+		mutex_exit(lro->lr_lock);
 		percpu_putref(sc->l2tp_ro_percpu);
 		m_freem(m);
 		error = ENETUNREACH;
@@ -221,7 +221,7 @@ in_l2tp_output(struct l2tp_variant *var,
 	if (rt->rt_ifp == ifp) {
 		rtcache_unref(rt, &lro->lr_ro);
 		rtcache_free(&lro->lr_ro);
-		mutex_exit(&lro->lr_lock);
+		mutex_exit(lro->lr_lock);
 		percpu_putref(sc->l2tp_ro_percpu);
 		m_freem(m);
 		error = ENETUNREACH;	/*XXX*/
@@ -236,7 +236,7 @@ in_l2tp_output(struct l2tp_variant *var,
 	m->m_pkthdr.csum_flags  = 0;
 
 	error = ip_output(m, NULL, &lro->lr_ro, 0, NULL, NULL);
-	mutex_exit(&lro->lr_lock);
+	mutex_exit(lro->lr_lock);
 	percpu_putref(sc->l2tp_ro_percpu);
 	return error;
 

Index: src/sys/netinet6/in6_gif.c
diff -u src/sys/netinet6/in6_gif.c:1.85.6.5 src/sys/netinet6/in6_gif.c:1.85.6.6
--- src/sys/netinet6/in6_gif.c:1.85.6.5	Thu Mar 15 11:27:25 2018
+++ src/sys/netinet6/in6_gif.c	Thu May 17 14:07:03 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: in6_gif.c,v 1.85.6.5 2018/03/15 11:27:25 bouyer Exp $	*/
+/*	$NetBSD: in6_gif.c,v 1.85.6.6 2018/05/17 14:07:03 martin Exp $	*/
 /*	$KAME: in6_gif.c,v 1.62 2001/07/29 04:27:25 itojun Exp $	*/
 
 /*
@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: in6_gif.c,v 1.85.6.5 2018/03/15 11:27:25 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: in6_gif.c,v 1.85.6.6 2018/05/17 14:07:03 martin Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_inet.h"
@@ -182,11 +182,11 @@ in6_gif_output(struct gif_variant *var, 
 
 	sc = ifp->if_softc;
 	gro = percpu_getref(sc->gif_ro_percpu);
-	mutex_enter(&gro->gr_lock);
+	mutex_enter(gro->gr_lock);
 	ro = &gro->gr_ro;
 	rt = rtcache_lookup(ro, var->gv_pdst);
 	if (rt == NULL) {
-		mutex_exit(&gro->gr_lock);
+		mutex_exit(gro->gr_lock);
 		percpu_putref(sc->gif_ro_percpu);
 		m_freem(m);
 		return ENETUNREACH;
@@ -196,7 +196,7 @@ in6_gif_output(struct gif_variant *var, 
 	if (rt->rt_ifp == ifp) {
 		rtcache_unref(rt, ro);
 		rtcache_free(ro);
-		mutex_exit(&gro->gr_lock);
+		mutex_exit(gro->gr_lock);
 		percpu_putref(sc->gif_ro_percpu);
 		m_freem(m);
 		return ENETUNREACH;	/* XXX */
@@ -213,7 +213,7 @@ in6_gif_output(struct gif_variant *var, 
 #else
 	error = ip6_output(m, 0, ro, 0, NULL, NULL, NULL);
 #endif
-	mutex_exit(&gro->gr_lock);
+	mutex_exit(gro->gr_lock);
 	percpu_putref(sc->gif_ro_percpu);
 	return (error);
 }

Index: src/sys/netinet6/in6_l2tp.c
diff -u src/sys/netinet6/in6_l2tp.c:1.5.8.4 src/sys/netinet6/in6_l2tp.c:1.5.8.5
--- src/sys/netinet6/in6_l2tp.c:1.5.8.4	Thu Mar  8 13:41:41 2018
+++ src/sys/netinet6/in6_l2tp.c	Thu May 17 14:07:03 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: in6_l2tp.c,v 1.5.8.4 2018/03/08 13:41:41 martin Exp $	*/
+/*	$NetBSD: in6_l2tp.c,v 1.5.8.5 2018/05/17 14:07:03 martin Exp $	*/
 
 /*
  * Copyright (c) 2017 Internet Initiative Japan Inc.
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: in6_l2tp.c,v 1.5.8.4 2018/03/08 13:41:41 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: in6_l2tp.c,v 1.5.8.5 2018/05/17 14:07:03 martin Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_l2tp.h"
@@ -202,9 +202,9 @@ in6_l2tp_output(struct l2tp_variant *var
 	memcpy(mtod(m, struct ip6_hdr *), &ip6hdr, sizeof(struct ip6_hdr));
 
 	lro = percpu_getref(sc->l2tp_ro_percpu);
-	mutex_enter(&lro->lr_lock);
+	mutex_enter(lro->lr_lock);
 	if ((rt = rtcache_lookup(&lro->lr_ro, var->lv_pdst)) == NULL) {
-		mutex_exit(&lro->lr_lock);
+		mutex_exit(lro->lr_lock);
 		percpu_putref(sc->l2tp_ro_percpu);
 		m_freem(m);
 		return ENETUNREACH;
@@ -214,7 +214,7 @@ in6_l2tp_output(struct l2tp_variant *var
 	if (rt->rt_ifp == ifp) {
 		rtcache_unref(rt, &lro->lr_ro);
 		rtcache_free(&lro->lr_ro);
-		mutex_exit(&lro->lr_lock);
+		mutex_exit(lro->lr_lock);
 		percpu_putref(sc->l2tp_ro_percpu);
 		m_freem(m);
 		return ENETUNREACH;	/* XXX */
@@ -228,7 +228,7 @@ in6_l2tp_output(struct l2tp_variant *var
 	m->m_pkthdr.csum_flags  = 0;
 
 	error = ip6_output(m, 0, &lro->lr_ro, 0, NULL, NULL, NULL);
-	mutex_exit(&lro->lr_lock);
+	mutex_exit(lro->lr_lock);
 	percpu_putref(sc->l2tp_ro_percpu);
 	return(error);
 

Index: src/sys/netipsec/ipsecif.c
diff -u src/sys/netipsec/ipsecif.c:1.1.2.6 src/sys/netipsec/ipsecif.c:1.1.2.7
--- src/sys/netipsec/ipsecif.c:1.1.2.6	Mon Apr  9 17:01:20 2018
+++ src/sys/netipsec/ipsecif.c	Thu May 17 14:07:03 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: ipsecif.c,v 1.1.2.6 2018/04/09 17:01:20 martin Exp $  */
+/*	$NetBSD: ipsecif.c,v 1.1.2.7 2018/05/17 14:07:03 martin Exp $  */
 
 /*
  * Copyright (c) 2017 Internet Initiative Japan Inc.
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ipsecif.c,v 1.1.2.6 2018/04/09 17:01:20 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ipsecif.c,v 1.1.2.7 2018/05/17 14:07:03 martin Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_inet.h"
@@ -576,9 +576,9 @@ ipsecif6_output(struct ipsec_variant *va
 	sockaddr_in6_init(&u.dst6, &sin6_dst->sin6_addr, 0, 0, 0);
 
 	iro = percpu_getref(sc->ipsec_ro_percpu);
-	mutex_enter(&iro->ir_lock);
+	mutex_enter(iro->ir_lock);
 	if ((rt = rtcache_lookup(&iro->ir_ro, &u.dst)) == NULL) {
-		mutex_exit(&iro->ir_lock);
+		mutex_exit(iro->ir_lock);
 		percpu_putref(sc->ipsec_ro_percpu);
 		m_freem(m);
 		return ENETUNREACH;
@@ -587,7 +587,7 @@ ipsecif6_output(struct ipsec_variant *va
 	if (rt->rt_ifp == ifp) {
 		rtcache_unref(rt, &iro->ir_ro);
 		rtcache_free(&iro->ir_ro);
-		mutex_exit(&iro->ir_lock);
+		mutex_exit(iro->ir_lock);
 		percpu_putref(sc->ipsec_ro_percpu);
 		m_freem(m);
 		return ENETUNREACH;
@@ -604,7 +604,7 @@ ipsecif6_output(struct ipsec_variant *va
 	if (error)
 		rtcache_free(&iro->ir_ro);
 
-	mutex_exit(&iro->ir_lock);
+	mutex_exit(iro->ir_lock);
 	percpu_putref(sc->ipsec_ro_percpu);
 
 	return error;
@@ -912,9 +912,9 @@ ipsecif6_rtcache_free_pc(void *p, void *
 {
 	struct ipsec_ro *iro = p;
 
-	mutex_enter(&iro->ir_lock);
+	mutex_enter(iro->ir_lock);
 	rtcache_free(&iro->ir_ro);
-	mutex_exit(&iro->ir_lock);
+	mutex_exit(iro->ir_lock);
 }
 
 int
@@ -966,7 +966,7 @@ ipsecif6_ctlinput(int cmd, const struct 
 		return NULL;
 
 	iro = percpu_getref(sc->ipsec_ro_percpu);
-	mutex_enter(&iro->ir_lock);
+	mutex_enter(iro->ir_lock);
 	dst6 = satocsin6(rtcache_getdst(&iro->ir_ro));
 	/* XXX scope */
 	if (dst6 == NULL)
@@ -975,7 +975,7 @@ ipsecif6_ctlinput(int cmd, const struct 
 		/* flush route cache */
 		rtcache_free(&iro->ir_ro);
 
-	mutex_exit(&iro->ir_lock);
+	mutex_exit(iro->ir_lock);
 	percpu_putref(sc->ipsec_ro_percpu);
 
 	return NULL;

Reply via email to