Commit d1d66186 authored by wangweidong's avatar wangweidong Committed by David S. Miller

sctp: remove the duplicate initialize

kzalloc had initialize the allocated memroy. Therefore, remove the
initialize with 0 and the memset.
Acked-by: default avatarNeil Horman <nhorman@tuxdriver.com>
Signed-off-by: default avatarWang Weidong <wangweidong1@huawei.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 19e1190a
...@@ -89,14 +89,12 @@ static struct sctp_association *sctp_association_init(struct sctp_association *a ...@@ -89,14 +89,12 @@ static struct sctp_association *sctp_association_init(struct sctp_association *a
/* Initialize the object handling fields. */ /* Initialize the object handling fields. */
atomic_set(&asoc->base.refcnt, 1); atomic_set(&asoc->base.refcnt, 1);
asoc->base.dead = false;
/* Initialize the bind addr area. */ /* Initialize the bind addr area. */
sctp_bind_addr_init(&asoc->base.bind_addr, ep->base.bind_addr.port); sctp_bind_addr_init(&asoc->base.bind_addr, ep->base.bind_addr.port);
asoc->state = SCTP_STATE_CLOSED; asoc->state = SCTP_STATE_CLOSED;
asoc->cookie_life = ms_to_ktime(sp->assocparams.sasoc_cookie_life); asoc->cookie_life = ms_to_ktime(sp->assocparams.sasoc_cookie_life);
asoc->frag_point = 0;
asoc->user_frag = sp->user_frag; asoc->user_frag = sp->user_frag;
/* Set the association max_retrans and RTO values from the /* Set the association max_retrans and RTO values from the
...@@ -109,8 +107,6 @@ static struct sctp_association *sctp_association_init(struct sctp_association *a ...@@ -109,8 +107,6 @@ static struct sctp_association *sctp_association_init(struct sctp_association *a
asoc->rto_max = msecs_to_jiffies(sp->rtoinfo.srto_max); asoc->rto_max = msecs_to_jiffies(sp->rtoinfo.srto_max);
asoc->rto_min = msecs_to_jiffies(sp->rtoinfo.srto_min); asoc->rto_min = msecs_to_jiffies(sp->rtoinfo.srto_min);
asoc->overall_error_count = 0;
/* Initialize the association's heartbeat interval based on the /* Initialize the association's heartbeat interval based on the
* sock configured value. * sock configured value.
*/ */
...@@ -137,12 +133,9 @@ static struct sctp_association *sctp_association_init(struct sctp_association *a ...@@ -137,12 +133,9 @@ static struct sctp_association *sctp_association_init(struct sctp_association *a
asoc->max_burst = sp->max_burst; asoc->max_burst = sp->max_burst;
/* initialize association timers */ /* initialize association timers */
asoc->timeouts[SCTP_EVENT_TIMEOUT_NONE] = 0;
asoc->timeouts[SCTP_EVENT_TIMEOUT_T1_COOKIE] = asoc->rto_initial; asoc->timeouts[SCTP_EVENT_TIMEOUT_T1_COOKIE] = asoc->rto_initial;
asoc->timeouts[SCTP_EVENT_TIMEOUT_T1_INIT] = asoc->rto_initial; asoc->timeouts[SCTP_EVENT_TIMEOUT_T1_INIT] = asoc->rto_initial;
asoc->timeouts[SCTP_EVENT_TIMEOUT_T2_SHUTDOWN] = asoc->rto_initial; asoc->timeouts[SCTP_EVENT_TIMEOUT_T2_SHUTDOWN] = asoc->rto_initial;
asoc->timeouts[SCTP_EVENT_TIMEOUT_T3_RTX] = 0;
asoc->timeouts[SCTP_EVENT_TIMEOUT_T4_RTO] = 0;
/* sctpimpguide Section 2.12.2 /* sctpimpguide Section 2.12.2
* If the 'T5-shutdown-guard' timer is used, it SHOULD be set to the * If the 'T5-shutdown-guard' timer is used, it SHOULD be set to the
...@@ -151,7 +144,6 @@ static struct sctp_association *sctp_association_init(struct sctp_association *a ...@@ -151,7 +144,6 @@ static struct sctp_association *sctp_association_init(struct sctp_association *a
asoc->timeouts[SCTP_EVENT_TIMEOUT_T5_SHUTDOWN_GUARD] asoc->timeouts[SCTP_EVENT_TIMEOUT_T5_SHUTDOWN_GUARD]
= 5 * asoc->rto_max; = 5 * asoc->rto_max;
asoc->timeouts[SCTP_EVENT_TIMEOUT_HEARTBEAT] = 0;
asoc->timeouts[SCTP_EVENT_TIMEOUT_SACK] = asoc->sackdelay; asoc->timeouts[SCTP_EVENT_TIMEOUT_SACK] = asoc->sackdelay;
asoc->timeouts[SCTP_EVENT_TIMEOUT_AUTOCLOSE] = asoc->timeouts[SCTP_EVENT_TIMEOUT_AUTOCLOSE] =
min_t(unsigned long, sp->autoclose, net->sctp.max_autoclose) * HZ; min_t(unsigned long, sp->autoclose, net->sctp.max_autoclose) * HZ;
...@@ -172,11 +164,6 @@ static struct sctp_association *sctp_association_init(struct sctp_association *a ...@@ -172,11 +164,6 @@ static struct sctp_association *sctp_association_init(struct sctp_association *a
asoc->max_init_timeo = asoc->max_init_timeo =
msecs_to_jiffies(sp->initmsg.sinit_max_init_timeo); msecs_to_jiffies(sp->initmsg.sinit_max_init_timeo);
/* Allocate storage for the ssnmap after the inbound and outbound
* streams have been negotiated during Init.
*/
asoc->ssnmap = NULL;
/* Set the local window size for receive. /* Set the local window size for receive.
* This is also the rcvbuf space per association. * This is also the rcvbuf space per association.
* RFC 6 - A SCTP receiver MUST be able to receive a minimum of * RFC 6 - A SCTP receiver MUST be able to receive a minimum of
...@@ -189,25 +176,15 @@ static struct sctp_association *sctp_association_init(struct sctp_association *a ...@@ -189,25 +176,15 @@ static struct sctp_association *sctp_association_init(struct sctp_association *a
asoc->a_rwnd = asoc->rwnd; asoc->a_rwnd = asoc->rwnd;
asoc->rwnd_over = 0;
asoc->rwnd_press = 0;
/* Use my own max window until I learn something better. */ /* Use my own max window until I learn something better. */
asoc->peer.rwnd = SCTP_DEFAULT_MAXWINDOW; asoc->peer.rwnd = SCTP_DEFAULT_MAXWINDOW;
/* Set the sndbuf size for transmit. */
asoc->sndbuf_used = 0;
/* Initialize the receive memory counter */ /* Initialize the receive memory counter */
atomic_set(&asoc->rmem_alloc, 0); atomic_set(&asoc->rmem_alloc, 0);
init_waitqueue_head(&asoc->wait); init_waitqueue_head(&asoc->wait);
asoc->c.my_vtag = sctp_generate_tag(ep); asoc->c.my_vtag = sctp_generate_tag(ep);
asoc->peer.i.init_tag = 0; /* INIT needs a vtag of 0. */
asoc->c.peer_vtag = 0;
asoc->c.my_ttag = 0;
asoc->c.peer_ttag = 0;
asoc->c.my_port = ep->base.bind_addr.port; asoc->c.my_port = ep->base.bind_addr.port;
asoc->c.initial_tsn = sctp_generate_tsn(ep); asoc->c.initial_tsn = sctp_generate_tsn(ep);
...@@ -218,7 +195,6 @@ static struct sctp_association *sctp_association_init(struct sctp_association *a ...@@ -218,7 +195,6 @@ static struct sctp_association *sctp_association_init(struct sctp_association *a
asoc->adv_peer_ack_point = asoc->ctsn_ack_point; asoc->adv_peer_ack_point = asoc->ctsn_ack_point;
asoc->highest_sacked = asoc->ctsn_ack_point; asoc->highest_sacked = asoc->ctsn_ack_point;
asoc->last_cwr_tsn = asoc->ctsn_ack_point; asoc->last_cwr_tsn = asoc->ctsn_ack_point;
asoc->unack_data = 0;
/* ADDIP Section 4.1 Asconf Chunk Procedures /* ADDIP Section 4.1 Asconf Chunk Procedures
* *
...@@ -237,7 +213,6 @@ static struct sctp_association *sctp_association_init(struct sctp_association *a ...@@ -237,7 +213,6 @@ static struct sctp_association *sctp_association_init(struct sctp_association *a
/* Make an empty list of remote transport addresses. */ /* Make an empty list of remote transport addresses. */
INIT_LIST_HEAD(&asoc->peer.transport_addr_list); INIT_LIST_HEAD(&asoc->peer.transport_addr_list);
asoc->peer.transport_count = 0;
/* RFC 2960 5.1 Normal Establishment of an Association /* RFC 2960 5.1 Normal Establishment of an Association
* *
...@@ -251,7 +226,6 @@ static struct sctp_association *sctp_association_init(struct sctp_association *a ...@@ -251,7 +226,6 @@ static struct sctp_association *sctp_association_init(struct sctp_association *a
* already received one packet.] * already received one packet.]
*/ */
asoc->peer.sack_needed = 1; asoc->peer.sack_needed = 1;
asoc->peer.sack_cnt = 0;
asoc->peer.sack_generation = 1; asoc->peer.sack_generation = 1;
/* Assume that the peer will tell us if he recognizes ASCONF /* Assume that the peer will tell us if he recognizes ASCONF
...@@ -259,12 +233,8 @@ static struct sctp_association *sctp_association_init(struct sctp_association *a ...@@ -259,12 +233,8 @@ static struct sctp_association *sctp_association_init(struct sctp_association *a
* The sctp_addip_noauth option is there for backward compatibilty * The sctp_addip_noauth option is there for backward compatibilty
* and will revert old behavior. * and will revert old behavior.
*/ */
asoc->peer.asconf_capable = 0;
if (net->sctp.addip_noauth) if (net->sctp.addip_noauth)
asoc->peer.asconf_capable = 1; asoc->peer.asconf_capable = 1;
asoc->asconf_addr_del_pending = NULL;
asoc->src_out_of_asoc_ok = 0;
asoc->new_transport = NULL;
/* Create an input queue. */ /* Create an input queue. */
sctp_inq_init(&asoc->base.inqueue); sctp_inq_init(&asoc->base.inqueue);
...@@ -276,12 +246,6 @@ static struct sctp_association *sctp_association_init(struct sctp_association *a ...@@ -276,12 +246,6 @@ static struct sctp_association *sctp_association_init(struct sctp_association *a
if (!sctp_ulpq_init(&asoc->ulpq, asoc)) if (!sctp_ulpq_init(&asoc->ulpq, asoc))
goto fail_init; goto fail_init;
memset(&asoc->peer.tsn_map, 0, sizeof(struct sctp_tsnmap));
asoc->need_ecne = 0;
asoc->assoc_id = 0;
/* Assume that peer would support both address types unless we are /* Assume that peer would support both address types unless we are
* told otherwise. * told otherwise.
*/ */
...@@ -299,9 +263,6 @@ static struct sctp_association *sctp_association_init(struct sctp_association *a ...@@ -299,9 +263,6 @@ static struct sctp_association *sctp_association_init(struct sctp_association *a
asoc->default_timetolive = sp->default_timetolive; asoc->default_timetolive = sp->default_timetolive;
asoc->default_rcv_context = sp->default_rcv_context; asoc->default_rcv_context = sp->default_rcv_context;
/* SCTP_GET_ASSOC_STATS COUNTERS */
memset(&asoc->stats, 0, sizeof(struct sctp_priv_assoc_stats));
/* AUTH related initializations */ /* AUTH related initializations */
INIT_LIST_HEAD(&asoc->endpoint_shared_keys); INIT_LIST_HEAD(&asoc->endpoint_shared_keys);
err = sctp_auth_asoc_copy_shkeys(ep, asoc, gfp); err = sctp_auth_asoc_copy_shkeys(ep, asoc, gfp);
...@@ -309,9 +270,7 @@ static struct sctp_association *sctp_association_init(struct sctp_association *a ...@@ -309,9 +270,7 @@ static struct sctp_association *sctp_association_init(struct sctp_association *a
goto fail_init; goto fail_init;
asoc->active_key_id = ep->active_key_id; asoc->active_key_id = ep->active_key_id;
asoc->asoc_shared_key = NULL;
asoc->default_hmac_id = 0;
/* Save the hmacs and chunks list into this association */ /* Save the hmacs and chunks list into this association */
if (ep->auth_hmacs_list) if (ep->auth_hmacs_list)
memcpy(asoc->c.auth_hmacs, ep->auth_hmacs_list, memcpy(asoc->c.auth_hmacs, ep->auth_hmacs_list,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment