summaryrefslogtreecommitdiffstats
path: root/sys/netinet/sctp_auth.c
diff options
context:
space:
mode:
authortuexen <tuexen@FreeBSD.org>2011-05-08 09:11:59 +0000
committertuexen <tuexen@FreeBSD.org>2011-05-08 09:11:59 +0000
commitf237c9d1bd2c10286b14fbc7c53110782a9ec164 (patch)
tree66156b7445130d0f2286124ccd8bbde0ba209ba4 /sys/netinet/sctp_auth.c
parentb5e32df2e047c30254644ec28a836794b00a4e48 (diff)
downloadFreeBSD-src-f237c9d1bd2c10286b14fbc7c53110782a9ec164.zip
FreeBSD-src-f237c9d1bd2c10286b14fbc7c53110782a9ec164.tar.gz
Fix a locking issue showing up on Mac OS X when subscribing to
authentication events. DTLS/SCTP renegotiations trigger the bug. MFC after: 2 weeks.
Diffstat (limited to 'sys/netinet/sctp_auth.c')
-rw-r--r--sys/netinet/sctp_auth.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/sys/netinet/sctp_auth.c b/sys/netinet/sctp_auth.c
index eb5a77b..91e3f78 100644
--- a/sys/netinet/sctp_auth.c
+++ b/sys/netinet/sctp_auth.c
@@ -598,7 +598,11 @@ sctp_auth_key_acquire(struct sctp_tcb *stcb, uint16_t key_id)
}
void
-sctp_auth_key_release(struct sctp_tcb *stcb, uint16_t key_id)
+sctp_auth_key_release(struct sctp_tcb *stcb, uint16_t key_id, int so_locked
+#if !defined(__APPLE__) && !defined(SCTP_SO_LOCK_TESTING)
+ SCTP_UNUSED
+#endif
+)
{
sctp_sharedkey_t *skey;
@@ -616,7 +620,7 @@ sctp_auth_key_release(struct sctp_tcb *stcb, uint16_t key_id)
if ((skey->refcount <= 1) && (skey->deactivated)) {
/* notify ULP that key is no longer used */
sctp_ulp_notify(SCTP_NOTIFY_AUTH_FREE_KEY, stcb,
- key_id, 0, SCTP_SO_LOCKED);
+ key_id, 0, so_locked);
SCTPDBG(SCTP_DEBUG_AUTH2,
"%s: stcb %p key %u no longer used, %d\n",
__FUNCTION__, stcb, key_id, skey->refcount);
OpenPOWER on IntegriCloud