Print this page
Bayard's initial drop, needs finishing, or at least testing.

@@ -19,10 +19,11 @@
  * CDDL HEADER END
  */
 /*
  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
+ * Copyright (c) 2012 Nexenta Systems, Inc. All rights reserved.
  */
 
 #ifndef _INET_SADB_H
 #define _INET_SADB_H
 

@@ -573,11 +574,10 @@
 
 typedef struct sadbp_s
 {
         uint32_t        s_satype;
         uint32_t        *s_acquire_timeout;
-        void            (*s_acqfn)(ipsacq_t *, mblk_t *, netstack_t *);
         sadb_t          s_v4;
         sadb_t          s_v6;
         uint32_t        s_addflags;
         uint32_t        s_updateflags;
 } sadbp_t;

@@ -913,13 +913,13 @@
                 mutex_enter(&assoc->ipsa_lock);                         \
                 if ((_sa)->_which == IPSEC_CTX_TMPL_ALLOC) {            \
                         ipsec_stack_t *ipss;                            \
                                                                         \
                         ipss = assoc->ipsa_netstack->netstack_ipsec;    \
-                        mutex_enter(&ipss->ipsec_alg_lock);             \
+                        rw_enter(&ipss->ipsec_alg_lock, RW_READER);     \
                         (void) ipsec_create_ctx_tmpl(_sa, _type);       \
-                        mutex_exit(&ipss->ipsec_alg_lock);              \
+                        rw_exit(&ipss->ipsec_alg_lock);                 \
                 }                                                       \
                 mutex_exit(&assoc->ipsa_lock);                          \
                 if ((_tmpl = (_sa)->_which) == IPSEC_CTX_TMPL_ALLOC)    \
                         _tmpl = NULL;                                   \
         }                                                               \