Module Name:    src
Committed By:   ozaki-r
Date:           Tue Aug  8 08:23:10 UTC 2017

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

Log Message:
Introduce key_sa_refcnt and replace sav->refcnt with it (NFC)


To generate a diff of this commit:
cvs rdiff -u -r1.216 -r1.217 src/sys/netipsec/key.c
cvs rdiff -u -r1.27 -r1.28 src/sys/netipsec/key.h
cvs rdiff -u -r1.19 -r1.20 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/key.c
diff -u src/sys/netipsec/key.c:1.216 src/sys/netipsec/key.c:1.217
--- src/sys/netipsec/key.c:1.216	Tue Aug  8 04:17:34 2017
+++ src/sys/netipsec/key.c	Tue Aug  8 08:23:10 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: key.c,v 1.216 2017/08/08 04:17:34 ozaki-r Exp $	*/
+/*	$NetBSD: key.c,v 1.217 2017/08/08 08:23:10 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.216 2017/08/08 04:17:34 ozaki-r Exp $");
+__KERNEL_RCSID(0, "$NetBSD: key.c,v 1.217 2017/08/08 08:23:10 ozaki-r Exp $");
 
 /*
  * This code is referd to RFC 2367
@@ -1086,7 +1086,7 @@ key_lookup_sa_bysaidx(const struct secas
 			SA_ADDREF(sav);
 			KEYDEBUG_PRINTF(KEYDEBUG_IPSEC_STAMP,
 			    "DP cause refcnt++:%d SA:%p\n",
-			    sav->refcnt, sav);
+			    key_sa_refcnt(sav), sav);
 			break;
 		}
 	}
@@ -1107,7 +1107,7 @@ key_sendup_message_delete(struct secasva
 	if (satype == 0)
 		goto msgfail;
 
-	m = key_setsadbmsg(SADB_DELETE, 0, satype, 0, 0, sav->refcnt - 1);
+	m = key_setsadbmsg(SADB_DELETE, 0, satype, 0, 0, key_sa_refcnt(sav) - 1);
 	if (m == NULL)
 		goto msgfail;
 	result = m;
@@ -1292,7 +1292,7 @@ done:
 	pserialize_read_exit(s);
 
 	KEYDEBUG_PRINTF(KEYDEBUG_IPSEC_STAMP,
-	    "DP return SA:%p; refcnt %u\n", sav, sav ? sav->refcnt : 0);
+	    "DP return SA:%p; refcnt %u\n", sav, key_sa_refcnt(sav));
 	return sav;
 }
 
@@ -1369,6 +1369,16 @@ key_sp_unref(struct secpolicy *sp, const
 	localcount_release(&sp->localcount, &key_spd.cv, &key_spd.lock);
 }
 
+u_int
+key_sa_refcnt(const struct secasvar *sav)
+{
+
+	if (sav == NULL)
+		return 0;
+
+	return sav->refcnt;
+}
+
 void
 key_sa_ref(struct secasvar *sav, const char* where, int tag)
 {
@@ -3322,7 +3332,7 @@ static void
 key_freesaval(struct secasvar *sav)
 {
 
-	KASSERT(sav->refcnt == 0);
+	KASSERT(key_sa_refcnt(sav) == 0);
 
 	if (sav->replay != NULL)
 		kmem_intr_free(sav->replay, sav->replay_len);
@@ -3358,7 +3368,7 @@ key_setsaval(struct secasvar *sav, struc
 	KASSERT(mhp->msg != NULL);
 
 	/* We shouldn't initialize sav variables while someone uses it. */
-	KASSERT(sav->refcnt == 0);
+	KASSERT(key_sa_refcnt(sav) == 0);
 
 	/* SA */
 	if (mhp->ext[SADB_EXT_SA] != NULL) {
@@ -3542,7 +3552,7 @@ key_init_xform(struct secasvar *sav)
 	int error;
 
 	/* We shouldn't initialize sav variables while someone uses it. */
-	KASSERT(sav->refcnt == 0);
+	KASSERT(key_sa_refcnt(sav) == 0);
 
 	/* check SPI value */
 	switch (sav->sah->saidx.proto) {
@@ -3638,7 +3648,7 @@ key_setdumpsa(struct secasvar *sav, u_in
 
 	};
 
-	m = key_setsadbmsg(type, 0, satype, seq, pid, sav->refcnt);
+	m = key_setsadbmsg(type, 0, satype, seq, pid, key_sa_refcnt(sav));
 	if (m == NULL)
 		goto fail;
 	result = m;
@@ -5620,7 +5630,7 @@ key_getsavbyseq(struct secashead *sah, u
 			SA_ADDREF(sav);
 			KEYDEBUG_PRINTF(KEYDEBUG_IPSEC_STAMP,
 			    "DP cause refcnt++:%d SA:%p\n",
-			    sav->refcnt, sav);
+			    key_sa_refcnt(sav), sav);
 			break;
 		}
 	}
@@ -7069,7 +7079,7 @@ key_expire(struct secasvar *sav)
 	KASSERTMSG(satype != 0, "invalid proto is passed");
 
 	/* set msg header */
-	m = key_setsadbmsg(SADB_EXPIRE, 0, satype, sav->seq, 0, sav->refcnt);
+	m = key_setsadbmsg(SADB_EXPIRE, 0, satype, sav->seq, 0, key_sa_refcnt(sav));
 	if (!m) {
 		error = ENOBUFS;
 		goto fail;

Index: src/sys/netipsec/key.h
diff -u src/sys/netipsec/key.h:1.27 src/sys/netipsec/key.h:1.28
--- src/sys/netipsec/key.h:1.27	Thu Aug  3 06:32:51 2017
+++ src/sys/netipsec/key.h	Tue Aug  8 08:23:10 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: key.h,v 1.27 2017/08/03 06:32:51 ozaki-r Exp $	*/
+/*	$NetBSD: key.h,v 1.28 2017/08/08 08:23:10 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 $	*/
 
@@ -61,6 +61,7 @@ u_int key_sp_refcnt(const struct secpoli
 void key_sp_ref(struct secpolicy *, const char*, int);
 void key_sp_unref(struct secpolicy *, const char*, int);
 void key_sa_ref(struct secasvar *, const char*, int);
+u_int key_sa_refcnt(const struct secasvar *);
 
 void key_socksplist_add(struct secpolicy *);
 

Index: src/sys/netipsec/key_debug.c
diff -u src/sys/netipsec/key_debug.c:1.19 src/sys/netipsec/key_debug.c:1.20
--- src/sys/netipsec/key_debug.c:1.19	Wed Jul 26 03:59:59 2017
+++ src/sys/netipsec/key_debug.c	Tue Aug  8 08:23:10 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: key_debug.c,v 1.19 2017/07/26 03:59:59 ozaki-r Exp $	*/
+/*	$NetBSD: key_debug.c,v 1.20 2017/08/08 08:23:10 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.19 2017/07/26 03:59:59 ozaki-r Exp $");
+__KERNEL_RCSID(0, "$NetBSD: key_debug.c,v 1.20 2017/08/08 08:23:10 ozaki-r Exp $");
 #endif
 
 #if defined(_KERNEL_OPT)
@@ -550,7 +550,7 @@ kdebug_secasv(const struct secasvar *sav
 	kdebug_secasindex(&sav->sah->saidx);
 
 	printf("  refcnt=%u state=%u auth=%u enc=%u\n",
-	    sav->refcnt, sav->state, sav->alg_auth, sav->alg_enc);
+	    key_sa_refcnt(sav), sav->state, sav->alg_auth, sav->alg_enc);
 	printf("  spi=%u flags=%u\n",
 	    (u_int32_t)ntohl(sav->spi), sav->flags);
 

Reply via email to