diff options
Diffstat (limited to 'net/sctp/associola.c')
-rw-r--r-- | net/sctp/associola.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/net/sctp/associola.c b/net/sctp/associola.c index 6a28b96e779e..914750b819b2 100644 --- a/net/sctp/associola.c +++ b/net/sctp/associola.c | |||
@@ -118,9 +118,6 @@ static struct sctp_association *sctp_association_init( | |||
118 | asoc->flowlabel = sp->flowlabel; | 118 | asoc->flowlabel = sp->flowlabel; |
119 | asoc->dscp = sp->dscp; | 119 | asoc->dscp = sp->dscp; |
120 | 120 | ||
121 | /* Initialize default path MTU. */ | ||
122 | asoc->pathmtu = sp->pathmtu; | ||
123 | |||
124 | /* Set association default SACK delay */ | 121 | /* Set association default SACK delay */ |
125 | asoc->sackdelay = msecs_to_jiffies(sp->sackdelay); | 122 | asoc->sackdelay = msecs_to_jiffies(sp->sackdelay); |
126 | asoc->sackfreq = sp->sackfreq; | 123 | asoc->sackfreq = sp->sackfreq; |
@@ -252,6 +249,10 @@ static struct sctp_association *sctp_association_init( | |||
252 | 0, gfp)) | 249 | 0, gfp)) |
253 | goto fail_init; | 250 | goto fail_init; |
254 | 251 | ||
252 | /* Initialize default path MTU. */ | ||
253 | asoc->pathmtu = sp->pathmtu; | ||
254 | sctp_assoc_update_frag_point(asoc); | ||
255 | |||
255 | /* Assume that peer would support both address types unless we are | 256 | /* Assume that peer would support both address types unless we are |
256 | * told otherwise. | 257 | * told otherwise. |
257 | */ | 258 | */ |
@@ -434,7 +435,7 @@ static void sctp_association_destroy(struct sctp_association *asoc) | |||
434 | 435 | ||
435 | WARN_ON(atomic_read(&asoc->rmem_alloc)); | 436 | WARN_ON(atomic_read(&asoc->rmem_alloc)); |
436 | 437 | ||
437 | kfree(asoc); | 438 | kfree_rcu(asoc, rcu); |
438 | SCTP_DBG_OBJCNT_DEC(assoc); | 439 | SCTP_DBG_OBJCNT_DEC(assoc); |
439 | } | 440 | } |
440 | 441 | ||