Module Name:    src
Committed By:   ozaki-r
Date:           Wed Jul 26 03:59:59 UTC 2017

Modified Files:
        src/sys/netipsec: ipsec.c key.c key.h key_debug.c

Log Message:
Provide and apply key_sp_refcnt (NFC)

It simplifies further changes.


To generate a diff of this commit:
cvs rdiff -u -r1.110 -r1.111 src/sys/netipsec/ipsec.c
cvs rdiff -u -r1.192 -r1.193 src/sys/netipsec/key.c
cvs rdiff -u -r1.24 -r1.25 src/sys/netipsec/key.h
cvs rdiff -u -r1.18 -r1.19 src/sys/netipsec/key_debug.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/netipsec/ipsec.c
diff -u src/sys/netipsec/ipsec.c:1.110 src/sys/netipsec/ipsec.c:1.111
--- src/sys/netipsec/ipsec.c:1.110	Fri Jul 21 04:50:11 2017
+++ src/sys/netipsec/ipsec.c	Wed Jul 26 03:59:59 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: ipsec.c,v 1.110 2017/07/21 04:50:11 ozaki-r Exp $	*/
+/*	$NetBSD: ipsec.c,v 1.111 2017/07/26 03:59:59 ozaki-r Exp $	*/
 /*	$FreeBSD: /usr/local/www/cvsroot/FreeBSD/src/sys/netipsec/ipsec.c,v 1.2.2.2 2003/07/01 01:38:13 sam Exp $	*/
 /*	$KAME: ipsec.c,v 1.103 2001/05/24 07:14:18 sakane Exp $	*/
 
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ipsec.c,v 1.110 2017/07/21 04:50:11 ozaki-r Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ipsec.c,v 1.111 2017/07/26 03:59:59 ozaki-r Exp $");
 
 /*
  * IPsec controller part.
@@ -256,7 +256,7 @@ ipsec_checkpcbcache(struct mbuf *m, stru
 	KEY_SP_REF(pcbsp->sp_cache[dir].cachesp);
 	KEYDEBUG_PRINTF(KEYDEBUG_IPSEC_STAMP,
 	    "DP cause refcnt++:%d SP:%p\n",
-	    pcbsp->sp_cache[dir].cachesp->refcnt,
+	    key_sp_refcnt(pcbsp->sp_cache[dir].cachesp),
 	    pcbsp->sp_cache[dir].cachesp);
 	return pcbsp->sp_cache[dir].cachesp;
 }
@@ -282,7 +282,7 @@ ipsec_fillpcbcache(struct inpcbpolicy *p
 		KEY_SP_REF(pcbsp->sp_cache[dir].cachesp);
 		KEYDEBUG_PRINTF(KEYDEBUG_IPSEC_STAMP,
 		    "DP cause refcnt++:%d SP:%p\n",
-		    pcbsp->sp_cache[dir].cachesp->refcnt,
+		    key_sp_refcnt(pcbsp->sp_cache[dir].cachesp),
 		    pcbsp->sp_cache[dir].cachesp);
 
 		/*
@@ -392,7 +392,7 @@ key_get_default_sp(int af, const char *w
 	KEY_SP_REF(sp);
 
 	KEYDEBUG_PRINTF(KEYDEBUG_IPSEC_STAMP, "DP returns SP:%p (%u)\n",
-	    sp, sp->refcnt);
+	    sp, key_sp_refcnt(sp));
 	return sp;
 }
 #define	KEY_GET_DEFAULT_SP(af) \
@@ -531,7 +531,7 @@ ipsec_getpolicybysock(struct mbuf *m, u_
 	    currsp->policy);
 	KEYDEBUG_PRINTF(KEYDEBUG_IPSEC_STAMP,
 	    "DP (priv %u policy %u) allocates SP:%p (refcnt %u)\n",
-	    pcbsp->priv, currsp->policy, sp, sp->refcnt);
+	    pcbsp->priv, currsp->policy, sp, key_sp_refcnt(sp));
 	ipsec_fillpcbcache(pcbsp, m, sp, dir);
 	return sp;
 }

Index: src/sys/netipsec/key.c
diff -u src/sys/netipsec/key.c:1.192 src/sys/netipsec/key.c:1.193
--- src/sys/netipsec/key.c:1.192	Wed Jul 26 01:33:35 2017
+++ src/sys/netipsec/key.c	Wed Jul 26 03:59:59 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: key.c,v 1.192 2017/07/26 01:33:35 ozaki-r Exp $	*/
+/*	$NetBSD: key.c,v 1.193 2017/07/26 03:59:59 ozaki-r Exp $	*/
 /*	$FreeBSD: src/sys/netipsec/key.c,v 1.3.2.3 2004/02/14 22:23:23 bms Exp $	*/
 /*	$KAME: key.c,v 1.191 2001/06/27 10:46:49 sakane Exp $	*/
 
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: key.c,v 1.192 2017/07/26 01:33:35 ozaki-r Exp $");
+__KERNEL_RCSID(0, "$NetBSD: key.c,v 1.193 2017/07/26 03:59:59 ozaki-r Exp $");
 
 /*
  * This code is referd to RFC 2367
@@ -602,6 +602,15 @@ static struct work	key_timehandler_wk;
 	REFLOG("SP_DELREF", (p), (where), (tag));			\
 } while (0)
 
+u_int
+key_sp_refcnt(const struct secpolicy *sp)
+{
+
+	if (sp == NULL)
+		return 0;
+
+	return sp->refcnt;
+}
 
 static inline void
 key_sp_dead(struct secpolicy *sp)
@@ -686,7 +695,7 @@ found:
 
 	KEYDEBUG_PRINTF(KEYDEBUG_IPSEC_STAMP,
 	    "DP return SP:%p (ID=%u) refcnt %u\n",
-	    sp, sp ? sp->id : 0, sp ? sp->refcnt : 0);
+	    sp, sp ? sp->id : 0, key_sp_refcnt(sp));
 	return sp;
 }
 
@@ -762,7 +771,7 @@ found:
 done:
 	KEYDEBUG_PRINTF(KEYDEBUG_IPSEC_STAMP,
 	    "DP return SP:%p (ID=%u) refcnt %u\n",
-	    sp, sp ? sp->id : 0, sp ? sp->refcnt : 0);
+	    sp, sp ? sp->id : 0, key_sp_refcnt(sp));
 	return sp;
 }
 
@@ -1112,7 +1121,7 @@ key_sp_ref(struct secpolicy *sp, const c
 
 	KEYDEBUG_PRINTF(KEYDEBUG_IPSEC_STAMP,
 	    "DP SP:%p (ID=%u) from %s:%u; refcnt now %u\n",
-	    sp, sp->id, where, tag, sp->refcnt);
+	    sp, sp->id, where, tag, key_sp_refcnt(sp));
 }
 
 void
@@ -2492,7 +2501,8 @@ key_setdumpsp(struct secpolicy *sp, u_in
 {
 	struct mbuf *result = NULL, *m;
 
-	m = key_setsadbmsg(type, 0, SADB_SATYPE_UNSPEC, seq, pid, sp->refcnt);
+	m = key_setsadbmsg(type, 0, SADB_SATYPE_UNSPEC, seq, pid,
+	    key_sp_refcnt(sp));
 	if (!m)
 		goto fail;
 	result = m;

Index: src/sys/netipsec/key.h
diff -u src/sys/netipsec/key.h:1.24 src/sys/netipsec/key.h:1.25
--- src/sys/netipsec/key.h:1.24	Fri Jul 21 04:39:08 2017
+++ src/sys/netipsec/key.h	Wed Jul 26 03:59:59 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: key.h,v 1.24 2017/07/21 04:39:08 ozaki-r Exp $	*/
+/*	$NetBSD: key.h,v 1.25 2017/07/26 03:59:59 ozaki-r Exp $	*/
 /*	$FreeBSD: src/sys/netipsec/key.h,v 1.1.4.1 2003/01/24 05:11:36 sam Exp $	*/
 /*	$KAME: key.h,v 1.21 2001/07/27 03:51:30 itojun Exp $	*/
 
@@ -56,6 +56,7 @@ struct secpolicy *key_gettunnel(const st
 	const struct sockaddr *, const char*, int);
 /* NB: prepend with _ for KAME IPv6 compatbility */
 void _key_freesp(struct secpolicy **, const char*, int);
+u_int key_sp_refcnt(const struct secpolicy *);
 void key_sp_ref(struct secpolicy *, const char*, int);
 void key_sa_ref(struct secasvar *, const char*, int);
 

Index: src/sys/netipsec/key_debug.c
diff -u src/sys/netipsec/key_debug.c:1.18 src/sys/netipsec/key_debug.c:1.19
--- src/sys/netipsec/key_debug.c:1.18	Fri Jul 21 04:50:11 2017
+++ src/sys/netipsec/key_debug.c	Wed Jul 26 03:59:59 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: key_debug.c,v 1.18 2017/07/21 04:50:11 ozaki-r Exp $	*/
+/*	$NetBSD: key_debug.c,v 1.19 2017/07/26 03:59:59 ozaki-r Exp $	*/
 /*	$FreeBSD: src/sys/netipsec/key_debug.c,v 1.1.4.1 2003/01/24 05:11:36 sam Exp $	*/
 /*	$KAME: key_debug.c,v 1.26 2001/06/27 10:46:50 sakane Exp $	*/
 
@@ -33,7 +33,7 @@
 
 #ifdef _KERNEL
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: key_debug.c,v 1.18 2017/07/21 04:50:11 ozaki-r Exp $");
+__KERNEL_RCSID(0, "$NetBSD: key_debug.c,v 1.19 2017/07/26 03:59:59 ozaki-r Exp $");
 #endif
 
 #if defined(_KERNEL_OPT)
@@ -51,6 +51,7 @@ __KERNEL_RCSID(0, "$NetBSD: key_debug.c,
 
 #include <net/route.h>
 
+#include <netipsec/key.h>
 #include <netipsec/key_var.h>
 #include <netipsec/key_debug.h>
 
@@ -461,7 +462,7 @@ kdebug_secpolicy(const struct secpolicy 
 		panic("kdebug_secpolicy: NULL pointer was passed");
 
 	printf("secpolicy{ refcnt=%u state=%u policy=%u\n",
-		sp->refcnt, sp->state, sp->policy);
+	    key_sp_refcnt(sp), sp->state, sp->policy);
 
 	kdebug_secpolicyindex(&sp->spidx);
 

Reply via email to