summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/inet/sctp/sctp_common.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/uts/common/inet/sctp/sctp_common.c')
-rw-r--r--usr/src/uts/common/inet/sctp/sctp_common.c24
1 files changed, 18 insertions, 6 deletions
diff --git a/usr/src/uts/common/inet/sctp/sctp_common.c b/usr/src/uts/common/inet/sctp/sctp_common.c
index afa613603d..529510fc18 100644
--- a/usr/src/uts/common/inet/sctp/sctp_common.c
+++ b/usr/src/uts/common/inet/sctp/sctp_common.c
@@ -20,7 +20,7 @@
*/
/*
- * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -1852,11 +1852,8 @@ sctp_init_faddr(sctp_t *sctp, sctp_faddr_t *fp, in6_addr_t *addr,
fp->timer_mp = timer_mp;
fp->hb_pending = B_FALSE;
fp->hb_enabled = B_TRUE;
- fp->timer_running = 0;
fp->df = 1;
fp->pmtu_discovered = 0;
- fp->rc_timer_mp = NULL;
- fp->rc_timer_running = 0;
fp->next = NULL;
fp->ire = NULL;
fp->T3expire = 0;
@@ -1869,8 +1866,23 @@ sctp_init_faddr(sctp_t *sctp, sctp_faddr_t *fp, in6_addr_t *addr,
}
/*ARGSUSED*/
+static int
+faddr_constructor(void *buf, void *arg, int flags)
+{
+ sctp_faddr_t *fp = buf;
+
+ fp->timer_mp = NULL;
+ fp->timer_running = 0;
+
+ fp->rc_timer_mp = NULL;
+ fp->rc_timer_running = 0;
+
+ return (0);
+}
+
+/*ARGSUSED*/
static void
-faddr_destructor(void *buf, void *cdrarg)
+faddr_destructor(void *buf, void *arg)
{
sctp_faddr_t *fp = buf;
@@ -1885,7 +1897,7 @@ void
sctp_faddr_init(void)
{
sctp_kmem_faddr_cache = kmem_cache_create("sctp_faddr_cache",
- sizeof (sctp_faddr_t), 0, NULL, faddr_destructor,
+ sizeof (sctp_faddr_t), 0, faddr_constructor, faddr_destructor,
NULL, NULL, NULL, 0);
}