Module Name: src Committed By: ozaki-r Date: Wed Apr 19 03:42:11 UTC 2017
Modified Files: src/sys/netipsec: ipsec.c key.c key_debug.h keysock.c Log Message: Tweak KEYDEBUG macros Let's avoid passing statements to a macro. To generate a diff of this commit: cvs rdiff -u -r1.76 -r1.77 src/sys/netipsec/ipsec.c cvs rdiff -u -r1.110 -r1.111 src/sys/netipsec/key.c cvs rdiff -u -r1.7 -r1.8 src/sys/netipsec/key_debug.h cvs rdiff -u -r1.51 -r1.52 src/sys/netipsec/keysock.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.76 src/sys/netipsec/ipsec.c:1.77 --- src/sys/netipsec/ipsec.c:1.76 Wed Apr 19 03:40:58 2017 +++ src/sys/netipsec/ipsec.c Wed Apr 19 03:42:11 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: ipsec.c,v 1.76 2017/04/19 03:40:58 ozaki-r Exp $ */ +/* $NetBSD: ipsec.c,v 1.77 2017/04/19 03:42:11 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.76 2017/04/19 03:40:58 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ipsec.c,v 1.77 2017/04/19 03:42:11 ozaki-r Exp $"); /* * IPsec controller part. @@ -264,10 +264,10 @@ ipsec_checkpcbcache(struct mbuf *m, stru pcbsp->sp_cache[dir].cachesp->lastused = time_second; pcbsp->sp_cache[dir].cachesp->refcnt++; - KEYDEBUG(KEYDEBUG_IPSEC_STAMP, - printf("DP %s cause refcnt++:%d SP:%p\n", __func__, + KEYDEBUG_PRINTF(KEYDEBUG_IPSEC_STAMP, + "DP cause refcnt++:%d SP:%p\n", pcbsp->sp_cache[dir].cachesp->refcnt, - pcbsp->sp_cache[dir].cachesp)); + pcbsp->sp_cache[dir].cachesp); return pcbsp->sp_cache[dir].cachesp; } @@ -298,10 +298,10 @@ ipsec_fillpcbcache(struct inpcbpolicy *p pcbsp->sp_cache[dir].cachesp = sp; if (pcbsp->sp_cache[dir].cachesp) { pcbsp->sp_cache[dir].cachesp->refcnt++; - KEYDEBUG(KEYDEBUG_IPSEC_STAMP, - printf("DP %s cause refcnt++:%d SP:%p\n", __func__, + KEYDEBUG_PRINTF(KEYDEBUG_IPSEC_STAMP, + "DP cause refcnt++:%d SP:%p\n", pcbsp->sp_cache[dir].cachesp->refcnt, - pcbsp->sp_cache[dir].cachesp)); + pcbsp->sp_cache[dir].cachesp); /* * If the PCB is connected, we can remember a hint to @@ -378,8 +378,7 @@ key_allocsp_default(int af, const char * { struct secpolicy *sp; - KEYDEBUG(KEYDEBUG_IPSEC_STAMP, - printf("DP %s from %s:%u\n", __func__, where, tag)); + KEYDEBUG_PRINTF(KEYDEBUG_IPSEC_STAMP, "DP from %s:%u\n", where, tag); switch(af) { case AF_INET: @@ -391,9 +390,8 @@ key_allocsp_default(int af, const char * break; #endif default: - KEYDEBUG(KEYDEBUG_IPSEC_STAMP, - printf("%s: unexpected protocol family %u\n", __func__, - af)); + KEYDEBUG_PRINTF(KEYDEBUG_IPSEC_STAMP, + "unexpected protocol family %u\n", af); return NULL; } @@ -405,8 +403,8 @@ key_allocsp_default(int af, const char * } sp->refcnt++; - KEYDEBUG(KEYDEBUG_IPSEC_STAMP, printf("DP %s returns SP:%p (%u)\n", - __func__, sp, sp->refcnt)); + KEYDEBUG_PRINTF(KEYDEBUG_IPSEC_STAMP, "DP returns SP:%p (%u)\n", + sp, sp->refcnt); return sp; } #define KEY_ALLOCSP_DEFAULT(af) \ @@ -571,9 +569,9 @@ ipsec_getpolicybysock(struct mbuf *m, u_ } KASSERTMSG(sp != NULL, "null SP (priv %u policy %u", pcbsp->priv, currsp->policy); - KEYDEBUG(KEYDEBUG_IPSEC_STAMP, - printf("DP %s (priv %u policy %u) allocates SP:%p (refcnt %u)\n", - __func__, pcbsp->priv, currsp->policy, sp, sp->refcnt)); + KEYDEBUG_PRINTF(KEYDEBUG_IPSEC_STAMP, + "DP (priv %u policy %u) allocates SP:%p (refcnt %u)\n", + pcbsp->priv, currsp->policy, sp, sp->refcnt); ipsec_fillpcbcache(pcbsp, m, sp, dir); return sp; } @@ -1001,16 +999,16 @@ ipsec_setspidx(struct mbuf *m, struct se for (n = m; n; n = n->m_next) len += n->m_len; if (m->m_pkthdr.len != len) { - KEYDEBUG(KEYDEBUG_IPSEC_DUMP, printf("%s: total of m_len(%d) " - "!= pkthdr.len(%d), ignored.\n", __func__, len, - m->m_pkthdr.len)); + KEYDEBUG_PRINTF(KEYDEBUG_IPSEC_DUMP, + "total of m_len(%d) != pkthdr.len(%d), ignored.\n", + len, m->m_pkthdr.len); return EINVAL; } if (m->m_pkthdr.len < sizeof(struct ip)) { - KEYDEBUG(KEYDEBUG_IPSEC_DUMP, printf("%s: pkthdr.len(%d) < " - "sizeof(struct ip), ignored.\n", __func__, - m->m_pkthdr.len)); + KEYDEBUG_PRINTF(KEYDEBUG_IPSEC_DUMP, + "pkthdr.len(%d) < sizeof(struct ip), ignored.\n", + m->m_pkthdr.len); return EINVAL; } @@ -1031,9 +1029,9 @@ ipsec_setspidx(struct mbuf *m, struct se #ifdef INET6 case 6: if (m->m_pkthdr.len < sizeof(struct ip6_hdr)) { - KEYDEBUG(KEYDEBUG_IPSEC_DUMP, printf("%s: " + KEYDEBUG_PRINTF(KEYDEBUG_IPSEC_DUMP, "pkthdr.len(%d) < sizeof(struct ip6_hdr), " - "ignored.\n", __func__, m->m_pkthdr.len)); + "ignored.\n", m->m_pkthdr.len); return EINVAL; } error = ipsec6_setspidx_ipaddr(m, spidx); @@ -1043,8 +1041,8 @@ ipsec_setspidx(struct mbuf *m, struct se return 0; #endif default: - KEYDEBUG(KEYDEBUG_IPSEC_DUMP, printf("%s: unknown IP version " - "%u, ignored.\n", __func__, v)); + KEYDEBUG_PRINTF(KEYDEBUG_IPSEC_DUMP, + "unknown IP version %u, ignored.\n", v); return EINVAL; } } @@ -1180,8 +1178,10 @@ ipsec6_get_ulp(struct mbuf *m, struct se if (m == NULL) panic("%s: NULL pointer was passed", __func__); - KEYDEBUG(KEYDEBUG_IPSEC_DUMP, printf("%s:\n", __func__); - kdebug_mbuf(m)); + if (KEYDEBUG_ON(KEYDEBUG_IPSEC_DUMP)) { + printf("%s:\n", __func__); + kdebug_mbuf(m); + } /* set default */ spidx->ul_proto = IPSEC_ULPROTO_ANY; @@ -1421,8 +1421,10 @@ ipsec_set_policy( return EINVAL; xpl = (const struct sadb_x_policy *)request; - KEYDEBUG(KEYDEBUG_IPSEC_DUMP, printf("%s: passed policy\n", __func__); - kdebug_sadb_x_policy((const struct sadb_ext *)xpl)); + if (KEYDEBUG_ON(KEYDEBUG_IPSEC_DUMP)) { + printf("%s: passed policy\n", __func__); + kdebug_sadb_x_policy((const struct sadb_ext *)xpl); + } /* check policy type */ /* ipsec_set_policy() accepts IPSEC, ENTRUST and BYPASS. */ @@ -1447,8 +1449,10 @@ ipsec_set_policy( /* clear old SP and set new SP */ KEY_FREESP(policy); *policy = newsp; - KEYDEBUG(KEYDEBUG_IPSEC_DUMP, printf("%s: new policy\n", __func__); - kdebug_secpolicy(newsp)); + if (KEYDEBUG_ON(KEYDEBUG_IPSEC_DUMP)) { + printf("%s: new policy\n", __func__); + kdebug_secpolicy(newsp); + } return 0; } @@ -1468,8 +1472,10 @@ ipsec_get_policy(struct secpolicy *polic } (*mp)->m_type = MT_DATA; - KEYDEBUG(KEYDEBUG_IPSEC_DUMP, printf("%s:\n", __func__); - kdebug_mbuf(*mp)); + if (KEYDEBUG_ON(KEYDEBUG_IPSEC_DUMP)) { + printf("%s:\n", __func__); + kdebug_mbuf(*mp); + } return 0; } @@ -1763,8 +1769,10 @@ ipsec_in_reject(const struct secpolicy * struct ipsecrequest *isr; int need_auth; - KEYDEBUG(KEYDEBUG_IPSEC_DATA, printf("%s: using SP\n", __func__); - kdebug_secpolicy(sp)); + if (KEYDEBUG_ON(KEYDEBUG_IPSEC_DATA)) { + printf("%s: using SP\n", __func__); + kdebug_secpolicy(sp); + } /* check policy */ switch (sp->policy) { @@ -1787,9 +1795,8 @@ ipsec_in_reject(const struct secpolicy * switch (isr->saidx.proto) { case IPPROTO_ESP: if ((m->m_flags & M_DECRYPTED) == 0) { - KEYDEBUG(KEYDEBUG_IPSEC_DUMP, - printf("%s: ESP m_flags:%x\n", __func__, - m->m_flags)); + KEYDEBUG_PRINTF(KEYDEBUG_IPSEC_DUMP, + "ESP m_flags:%x\n", m->m_flags); return 1; } @@ -1797,18 +1804,16 @@ ipsec_in_reject(const struct secpolicy * isr->sav != NULL && isr->sav->tdb_authalgxform != NULL && (m->m_flags & M_AUTHIPDGM) == 0) { - KEYDEBUG(KEYDEBUG_IPSEC_DUMP, - printf("%s: ESP/AH m_flags:%x\n", __func__, - m->m_flags)); + KEYDEBUG_PRINTF(KEYDEBUG_IPSEC_DUMP, + "ESP/AH m_flags:%x\n", m->m_flags); return 1; } break; case IPPROTO_AH: need_auth = 1; if ((m->m_flags & M_AUTHIPHDR) == 0) { - KEYDEBUG(KEYDEBUG_IPSEC_DUMP, - printf("%s: AH m_flags:%x\n", __func__, - m->m_flags)); + KEYDEBUG_PRINTF(KEYDEBUG_IPSEC_DUMP, + "AH m_flags:%x\n", m->m_flags); return 1; } break; @@ -1913,8 +1918,10 @@ ipsec_hdrsiz(const struct secpolicy *sp) const struct ipsecrequest *isr; size_t siz; - KEYDEBUG(KEYDEBUG_IPSEC_DATA, printf("%s: using SP\n", __func__); - kdebug_secpolicy(sp)); + if (KEYDEBUG_ON(KEYDEBUG_IPSEC_DATA)) { + printf("%s: using SP\n", __func__); + kdebug_secpolicy(sp); + } switch (sp->policy) { case IPSEC_POLICY_DISCARD: @@ -1989,8 +1996,8 @@ ipsec4_hdrsiz(struct mbuf *m, u_int dir, if (sp != NULL) { size = ipsec_hdrsiz(sp); - KEYDEBUG(KEYDEBUG_IPSEC_DATA, printf("%s: size:%lu.\n", - __func__, (unsigned long)size)); + KEYDEBUG_PRINTF(KEYDEBUG_IPSEC_DATA, "size:%lu.\n", + (unsigned long)size); KEY_FREESP(&sp); } else { @@ -2026,8 +2033,7 @@ ipsec6_hdrsiz(struct mbuf *m, u_int dir, if (sp == NULL) return 0; size = ipsec_hdrsiz(sp); - KEYDEBUG(KEYDEBUG_IPSEC_DATA, - printf("%s: size:%zu.\n", __func__, size)); + KEYDEBUG_PRINTF(KEYDEBUG_IPSEC_DATA, "size:%zu.\n", size); KEY_FREESP(&sp); return size; Index: src/sys/netipsec/key.c diff -u src/sys/netipsec/key.c:1.110 src/sys/netipsec/key.c:1.111 --- src/sys/netipsec/key.c:1.110 Wed Apr 19 03:40:58 2017 +++ src/sys/netipsec/key.c Wed Apr 19 03:42:11 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: key.c,v 1.110 2017/04/19 03:40:58 ozaki-r Exp $ */ +/* $NetBSD: key.c,v 1.111 2017/04/19 03:42:11 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.110 2017/04/19 03:40:58 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: key.c,v 1.111 2017/04/19 03:42:11 ozaki-r Exp $"); /* * This code is referd to RFC 2367 @@ -597,19 +597,20 @@ key_allocsp(const struct secpolicyindex KASSERTMSG(dir == IPSEC_DIR_INBOUND || dir == IPSEC_DIR_OUTBOUND, "invalid direction %u", dir); - KEYDEBUG(KEYDEBUG_IPSEC_STAMP, - printf("DP %s from %s:%u\n", __func__, where, tag)); + KEYDEBUG_PRINTF(KEYDEBUG_IPSEC_STAMP, "DP from %s:%u\n", where, tag); /* get a SP entry */ s = splsoftnet(); /*called from softclock()*/ - KEYDEBUG(KEYDEBUG_IPSEC_DATA, + if (KEYDEBUG_ON(KEYDEBUG_IPSEC_DATA)) { printf("*** objects\n"); - kdebug_secpolicyindex(spidx)); + kdebug_secpolicyindex(spidx); + } LIST_FOREACH(sp, &sptree[dir], chain) { - KEYDEBUG(KEYDEBUG_IPSEC_DATA, + if (KEYDEBUG_ON(KEYDEBUG_IPSEC_DATA)) { printf("*** in SPD\n"); - kdebug_secpolicyindex(&sp->spidx)); + kdebug_secpolicyindex(&sp->spidx); + } if (sp->state == IPSEC_SPSTATE_DEAD) continue; @@ -628,9 +629,9 @@ found: } splx(s); - KEYDEBUG(KEYDEBUG_IPSEC_STAMP, - printf("DP %s return SP:%p (ID=%u) refcnt %u\n", __func__, - sp, sp ? sp->id : 0, sp ? sp->refcnt : 0)); + KEYDEBUG_PRINTF(KEYDEBUG_IPSEC_STAMP, + "DP return SP:%p (ID=%u) refcnt %u\n", + sp, sp ? sp->id : 0, sp ? sp->refcnt : 0); return sp; } @@ -654,20 +655,21 @@ key_allocsp2(u_int32_t spi, KASSERTMSG(dir == IPSEC_DIR_INBOUND || dir == IPSEC_DIR_OUTBOUND, "invalid direction %u", dir); - KEYDEBUG(KEYDEBUG_IPSEC_STAMP, - printf("DP %s from %s:%u\n", __func__, where, tag)); + KEYDEBUG_PRINTF(KEYDEBUG_IPSEC_STAMP, "DP from %s:%u\n", where, tag); /* get a SP entry */ s = splsoftnet(); /*called from softclock()*/ - KEYDEBUG(KEYDEBUG_IPSEC_DATA, + if (KEYDEBUG_ON(KEYDEBUG_IPSEC_DATA)) { printf("*** objects\n"); printf("spi %u proto %u dir %u\n", spi, proto, dir); - kdebug_sockaddr(&dst->sa)); + kdebug_sockaddr(&dst->sa); + } LIST_FOREACH(sp, &sptree[dir], chain) { - KEYDEBUG(KEYDEBUG_IPSEC_DATA, + if (KEYDEBUG_ON(KEYDEBUG_IPSEC_DATA)) { printf("*** in SPD\n"); - kdebug_secpolicyindex(&sp->spidx)); + kdebug_secpolicyindex(&sp->spidx); + } if (sp->state == IPSEC_SPSTATE_DEAD) continue; @@ -692,9 +694,9 @@ found: } splx(s); - KEYDEBUG(KEYDEBUG_IPSEC_STAMP, - printf("DP %s return SP:%p (ID=%u) refcnt %u\n", __func__, - sp, sp ? sp->id : 0, sp ? sp->refcnt : 0)); + KEYDEBUG_PRINTF(KEYDEBUG_IPSEC_STAMP, + "DP return SP:%p (ID=%u) refcnt %u\n", + sp, sp ? sp->id : 0, sp ? sp->refcnt : 0); return sp; } @@ -715,8 +717,7 @@ key_gettunnel(const struct sockaddr *osr struct ipsecrequest *r1, *r2, *p; struct secpolicyindex spidx; - KEYDEBUG(KEYDEBUG_IPSEC_STAMP, - printf("DP %s from %s:%u\n", __func__, where, tag)); + KEYDEBUG_PRINTF(KEYDEBUG_IPSEC_STAMP, "DP from %s:%u\n", where, tag); if (isrc->sa_family != idst->sa_family) { ipseclog((LOG_ERR, "protocol family mismatched %d != %d\n.", @@ -769,9 +770,9 @@ found: } splx(s); done: - KEYDEBUG(KEYDEBUG_IPSEC_STAMP, - printf("DP %s return SP:%p (ID=%u) refcnt %u\n", __func__, - sp, sp ? sp->id : 0, sp ? sp->refcnt : 0)); + KEYDEBUG_PRINTF(KEYDEBUG_IPSEC_STAMP, + "DP return SP:%p (ID=%u) refcnt %u\n", + sp, sp ? sp->id : 0, sp ? sp->refcnt : 0); return sp; } @@ -1049,9 +1050,9 @@ key_do_allocsa_policy(struct secashead * if (candidate) { SA_ADDREF(candidate); - KEYDEBUG(KEYDEBUG_IPSEC_STAMP, - printf("DP %s cause refcnt++:%d SA:%p\n", __func__, - candidate->refcnt, candidate)); + KEYDEBUG_PRINTF(KEYDEBUG_IPSEC_STAMP, + "DP cause refcnt++:%d SA:%p\n", + candidate->refcnt, candidate); } return candidate; } @@ -1119,9 +1120,9 @@ key_allocsa( must_check_alg = 1; } } - KEYDEBUG(KEYDEBUG_IPSEC_STAMP, - printf("DP %s from %s:%u check_spi=%d, check_alg=%d\n", - __func__, where, tag, must_check_spi, must_check_alg)); + KEYDEBUG_PRINTF(KEYDEBUG_IPSEC_STAMP, + "DP from %s:%u check_spi=%d, check_alg=%d\n", + where, tag, must_check_spi, must_check_alg); /* @@ -1143,36 +1144,35 @@ key_allocsa( for (stateidx = 0; stateidx < arraysize; stateidx++) { state = saorder_state_valid[stateidx]; LIST_FOREACH(sav, &sah->savtree[state], chain) { - KEYDEBUG(KEYDEBUG_MATCH, - printf("try match spi %#x, %#x\n", - ntohl(spi), ntohl(sav->spi))); + KEYDEBUG_PRINTF(KEYDEBUG_MATCH, + "try match spi %#x, %#x\n", + ntohl(spi), ntohl(sav->spi)); /* sanity check */ KEY_CHKSASTATE(sav->state, state, "key_allocsav"); /* do not return entries w/ unusable state */ if (sav->state != SADB_SASTATE_MATURE && sav->state != SADB_SASTATE_DYING) { - KEYDEBUG(KEYDEBUG_MATCH, - printf("bad state %d\n", - sav->state)); + KEYDEBUG_PRINTF(KEYDEBUG_MATCH, + "bad state %d\n", sav->state); continue; } if (proto != sav->sah->saidx.proto) { - KEYDEBUG(KEYDEBUG_MATCH, - printf("proto fail %d != %d\n", - proto, sav->sah->saidx.proto)); + KEYDEBUG_PRINTF(KEYDEBUG_MATCH, + "proto fail %d != %d\n", + proto, sav->sah->saidx.proto); continue; } if (must_check_spi && spi != sav->spi) { - KEYDEBUG(KEYDEBUG_MATCH, - printf("spi fail %#x != %#x\n", - ntohl(spi), ntohl(sav->spi))); + KEYDEBUG_PRINTF(KEYDEBUG_MATCH, + "spi fail %#x != %#x\n", + ntohl(spi), ntohl(sav->spi)); continue; } /* XXX only on the ipcomp case */ if (must_check_alg && algo != sav->alg_comp) { - KEYDEBUG(KEYDEBUG_MATCH, - printf("algo fail %d != %d\n", - algo, sav->alg_comp)); + KEYDEBUG_PRINTF(KEYDEBUG_MATCH, + "algo fail %d != %d\n", + algo, sav->alg_comp); continue; } @@ -1197,9 +1197,8 @@ key_allocsa( done: splx(s); - KEYDEBUG(KEYDEBUG_IPSEC_STAMP, - printf("DP %s return SA:%p; refcnt %u\n", __func__, - sav, sav ? sav->refcnt : 0)); + KEYDEBUG_PRINTF(KEYDEBUG_IPSEC_STAMP, + "DP return SA:%p; refcnt %u\n", sav, sav ? sav->refcnt : 0); return sav; } @@ -1216,9 +1215,9 @@ _key_freesp(struct secpolicy **spp, cons SP_DELREF(sp); - KEYDEBUG(KEYDEBUG_IPSEC_STAMP, - printf("DP %s SP:%p (ID=%u) from %s:%u; refcnt now %u\n", - __func__, sp, sp->id, where, tag, sp->refcnt)); + KEYDEBUG_PRINTF(KEYDEBUG_IPSEC_STAMP, + "DP SP:%p (ID=%u) from %s:%u; refcnt now %u\n", + sp, sp->id, where, tag, sp->refcnt); if (sp->refcnt == 0) { *spp = NULL; @@ -1313,10 +1312,9 @@ key_freesav(struct secasvar **psav, cons SA_DELREF(sav); - KEYDEBUG(KEYDEBUG_IPSEC_STAMP, - printf("DP %s SA:%p (SPI %lu) from %s:%u; refcnt now %u\n", - __func__, sav, (u_long)ntohl(sav->spi), where, tag, - sav->refcnt)); + KEYDEBUG_PRINTF(KEYDEBUG_IPSEC_STAMP, + "DP SA:%p (SPI %lu) from %s:%u; refcnt now %u\n", + sav, (u_long)ntohl(sav->spi), where, tag, sav->refcnt); if (sav->refcnt == 0) { *psav = NULL; @@ -1429,9 +1427,8 @@ key_newsp(const char* where, int tag) newsp->req = NULL; } - KEYDEBUG(KEYDEBUG_IPSEC_STAMP, - printf("DP %s from %s:%u return SP:%p\n", __func__, - where, tag, newsp)); + KEYDEBUG_PRINTF(KEYDEBUG_IPSEC_STAMP, + "DP from %s:%u return SP:%p\n", where, tag, newsp); return newsp; } @@ -3011,9 +3008,8 @@ key_newsav(struct mbuf *m, const struct LIST_INSERT_TAIL(&sah->savtree[SADB_SASTATE_LARVAL], newsav, secasvar, chain); done: - KEYDEBUG(KEYDEBUG_IPSEC_STAMP, - printf("DP %s from %s:%u return SP:%p\n", __func__, - where, tag, newsav)); + KEYDEBUG_PRINTF(KEYDEBUG_IPSEC_STAMP, + "DP from %s:%u return SP:%p\n", where, tag, newsav); return newsav; } @@ -4426,8 +4422,8 @@ key_portcomp(in_port_t port1, in_port_t /*FALLTHROUGH*/ case PORT_STRICT: if (port1 != port2) { - KEYDEBUG(KEYDEBUG_MATCH, - printf("port fail %d != %d\n", port1, port2)); + KEYDEBUG_PRINTF(KEYDEBUG_MATCH, + "port fail %d != %d\n", port1, port2); return 1; } return 0; @@ -4448,39 +4444,36 @@ key_sockaddrcmp( const struct sockaddr_in6 *sin61, *sin62; if (sa1->sa_family != sa2->sa_family || sa1->sa_len != sa2->sa_len) { - KEYDEBUG(KEYDEBUG_MATCH, - printf("fam/len fail %d != %d || %d != %d\n", + KEYDEBUG_PRINTF(KEYDEBUG_MATCH, + "fam/len fail %d != %d || %d != %d\n", sa1->sa_family, sa2->sa_family, sa1->sa_len, - sa2->sa_len)); + sa2->sa_len); return 1; } switch (sa1->sa_family) { case AF_INET: if (sa1->sa_len != sizeof(struct sockaddr_in)) { - KEYDEBUG(KEYDEBUG_MATCH, - printf("len fail %d != %zu\n", - sa1->sa_len, sizeof(struct sockaddr_in))); + KEYDEBUG_PRINTF(KEYDEBUG_MATCH, + "len fail %d != %zu\n", + sa1->sa_len, sizeof(struct sockaddr_in)); return 1; } sin1 = (const struct sockaddr_in *)sa1; sin2 = (const struct sockaddr_in *)sa2; if (sin1->sin_addr.s_addr != sin2->sin_addr.s_addr) { - KEYDEBUG(KEYDEBUG_MATCH, - printf("addr fail %#x != %#x\n", - sin1->sin_addr.s_addr, - sin2->sin_addr.s_addr)); + KEYDEBUG_PRINTF(KEYDEBUG_MATCH, + "addr fail %#x != %#x\n", + sin1->sin_addr.s_addr, sin2->sin_addr.s_addr); return 1; } if (key_portcomp(sin1->sin_port, sin2->sin_port, howport)) { return 1; } - KEYDEBUG(KEYDEBUG_MATCH, - printf("addr success %#x[%d] == %#x[%d]\n", - sin1->sin_addr.s_addr, - sin1->sin_port, - sin2->sin_addr.s_addr, - sin2->sin_port)); + KEYDEBUG_PRINTF(KEYDEBUG_MATCH, + "addr success %#x[%d] == %#x[%d]\n", + sin1->sin_addr.s_addr, sin1->sin_port, + sin2->sin_addr.s_addr, sin2->sin_port); break; case AF_INET6: sin61 = (const struct sockaddr_in6 *)sa1; @@ -5447,9 +5440,9 @@ key_getsavbyseq(struct secashead *sah, u if (sav->seq == seq) { SA_ADDREF(sav); - KEYDEBUG(KEYDEBUG_IPSEC_STAMP, - printf("DP %s cause refcnt++:%d SA:%p\n", - __func__, sav->refcnt, sav)); + KEYDEBUG_PRINTF(KEYDEBUG_IPSEC_STAMP, + "DP cause refcnt++:%d SA:%p\n", + sav->refcnt, sav); return sav; } } @@ -7330,9 +7323,10 @@ key_parse(struct mbuf *m, struct socket panic("key_parse: NULL pointer is passed"); #if 0 /*kdebug_sadb assumes msg in linear buffer*/ - KEYDEBUG(KEYDEBUG_KEY_DUMP, + if (KEYDEBUG_ON(KEYDEBUG_KEY_DUMP)) { ipseclog((LOG_DEBUG, "key_parse: passed sadb_msg\n")); - kdebug_sadb(msg)); + kdebug_sadb(msg); + } #endif if (m->m_len < sizeof(struct sadb_msg)) { Index: src/sys/netipsec/key_debug.h diff -u src/sys/netipsec/key_debug.h:1.7 src/sys/netipsec/key_debug.h:1.8 --- src/sys/netipsec/key_debug.h:1.7 Sat Mar 5 20:11:09 2016 +++ src/sys/netipsec/key_debug.h Wed Apr 19 03:42:11 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: key_debug.h,v 1.7 2016/03/05 20:11:09 christos Exp $ */ +/* $NetBSD: key_debug.h,v 1.8 2017/04/19 03:42:11 ozaki-r Exp $ */ /* $FreeBSD: src/sys/netipsec/key_debug.h,v 1.1.4.1 2003/01/24 05:11:36 sam Exp $ */ /* $KAME: key_debug.h,v 1.10 2001/08/05 08:37:52 itojun Exp $ */ @@ -55,8 +55,14 @@ #define KEYDEBUG_IPSEC_DATA (KEYDEBUG_IPSEC | KEYDEBUG_DATA) #define KEYDEBUG_IPSEC_DUMP (KEYDEBUG_IPSEC | KEYDEBUG_DUMP) -#define KEYDEBUG(lev,arg) \ - do { if ((key_debug_level & (lev)) == (lev)) { arg; } } while (/*CONSTCOND*/ 0) +#define KEYDEBUG_ON(lev) ((key_debug_level & (lev)) == (lev)) + +#define KEYDEBUG_PRINTF(lev, fmt, ...) \ + do { \ + if (KEYDEBUG_ON((lev))) \ + log(LOG_DEBUG, "%s: " fmt, __func__, \ + __VA_ARGS__); \ + } while (0) extern u_int32_t key_debug_level; #endif /*_KERNEL*/ Index: src/sys/netipsec/keysock.c diff -u src/sys/netipsec/keysock.c:1.51 src/sys/netipsec/keysock.c:1.52 --- src/sys/netipsec/keysock.c:1.51 Wed Apr 19 03:39:14 2017 +++ src/sys/netipsec/keysock.c Wed Apr 19 03:42:11 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: keysock.c,v 1.51 2017/04/19 03:39:14 ozaki-r Exp $ */ +/* $NetBSD: keysock.c,v 1.52 2017/04/19 03:42:11 ozaki-r Exp $ */ /* $FreeBSD: src/sys/netipsec/keysock.c,v 1.3.2.1 2003/01/24 05:11:36 sam Exp $ */ /* $KAME: keysock.c,v 1.25 2001/08/13 20:07:41 itojun Exp $ */ @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: keysock.c,v 1.51 2017/04/19 03:39:14 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: keysock.c,v 1.52 2017/04/19 03:42:11 ozaki-r Exp $"); /* This code has derived from sys/net/rtsock.c on FreeBSD2.2.5 */ @@ -119,7 +119,8 @@ key_output(struct mbuf *m, struct socket if ((m->m_flags & M_PKTHDR) == 0) panic("key_output: not M_PKTHDR ??"); - KEYDEBUG(KEYDEBUG_KEY_DUMP, kdebug_mbuf(m)); + if (KEYDEBUG_ON(KEYDEBUG_KEY_DUMP)) + kdebug_mbuf(m); msg = mtod(m, struct sadb_msg *); PFKEY_STATINC(PFKEY_STAT_OUT_MSGTYPE + msg->sadb_msg_type); @@ -205,9 +206,10 @@ key_sendup(struct socket *so, struct sad if (so == 0 || msg == 0) panic("key_sendup: NULL pointer was passed"); - KEYDEBUG(KEYDEBUG_KEY_DUMP, + if (KEYDEBUG_ON(KEYDEBUG_KEY_DUMP)) { printf("key_sendup: \n"); - kdebug_sadb(msg)); + kdebug_sadb(msg); + } /* * we increment statistics here, just in case we have ENOBUFS