diff options
Diffstat (limited to 'net/sctp/outqueue.c')
| -rw-r--r-- | net/sctp/outqueue.c | 12 | 
1 files changed, 8 insertions, 4 deletions
| diff --git a/net/sctp/outqueue.c b/net/sctp/outqueue.c index 379c81dee9d1..9bcdbd02d777 100644 --- a/net/sctp/outqueue.c +++ b/net/sctp/outqueue.c @@ -224,7 +224,7 @@ void sctp_outq_init(struct sctp_association *asoc, struct sctp_outq *q)  /* Free the outqueue structure and any related pending chunks.   */ -void sctp_outq_teardown(struct sctp_outq *q) +static void __sctp_outq_teardown(struct sctp_outq *q)  {  	struct sctp_transport *transport;  	struct list_head *lchunk, *temp; @@ -277,8 +277,6 @@ void sctp_outq_teardown(struct sctp_outq *q)  		sctp_chunk_free(chunk);  	} -	q->error = 0; -  	/* Throw away any leftover control chunks. */  	list_for_each_entry_safe(chunk, tmp, &q->control_chunk_list, list) {  		list_del_init(&chunk->list); @@ -286,11 +284,17 @@ void sctp_outq_teardown(struct sctp_outq *q)  	}  } +void sctp_outq_teardown(struct sctp_outq *q) +{ +	__sctp_outq_teardown(q); +	sctp_outq_init(q->asoc, q); +} +  /* Free the outqueue structure and any related pending chunks.  */  void sctp_outq_free(struct sctp_outq *q)  {  	/* Throw away leftover chunks. */ -	sctp_outq_teardown(q); +	__sctp_outq_teardown(q);  	/* If we were kmalloc()'d, free the memory.  */  	if (q->malloced) |