svn commit: r308977 - projects/ipsec/sys/netipsec
Andrey V. Elsukov
ae at FreeBSD.org
Tue Nov 22 10:42:54 UTC 2016
Author: ae
Date: Tue Nov 22 10:42:52 2016
New Revision: 308977
URL: https://svnweb.freebsd.org/changeset/base/308977
Log:
Modify key_getspbyid() to use SPHASH.
Modified:
projects/ipsec/sys/netipsec/key.c
Modified: projects/ipsec/sys/netipsec/key.c
==============================================================================
--- projects/ipsec/sys/netipsec/key.c Tue Nov 22 10:39:41 2016 (r308976)
+++ projects/ipsec/sys/netipsec/key.c Tue Nov 22 10:42:52 2016 (r308977)
@@ -1134,32 +1134,23 @@ key_getsp(struct secpolicyindex *spidx)
/*
* get SP by index.
* OUT: NULL : not found
- * others : found, pointer to a SP.
+ * others : found, pointer to referenced SP.
*/
static struct secpolicy *
-key_getspbyid(u_int32_t id)
+key_getspbyid(uint32_t id)
{
SPTREE_RLOCK_TRACKER;
struct secpolicy *sp;
SPTREE_RLOCK();
- TAILQ_FOREACH(sp, &V_sptree[IPSEC_DIR_INBOUND], chain) {
+ LIST_FOREACH(sp, SPHASH_HASH(id), idhash) {
if (sp->id == id) {
SP_ADDREF(sp);
- goto done;
- }
- }
-
- TAILQ_FOREACH(sp, &V_sptree[IPSEC_DIR_OUTBOUND], chain) {
- if (sp->id == id) {
- SP_ADDREF(sp);
- goto done;
+ break;
}
}
-done:
SPTREE_RUNLOCK();
-
- return sp;
+ return (sp);
}
struct secpolicy *
More information about the svn-src-projects
mailing list