diff options
Diffstat (limited to 'net/sctp/ulpevent.c')
| -rw-r--r-- | net/sctp/ulpevent.c | 8 | 
1 files changed, 2 insertions, 6 deletions
| diff --git a/net/sctp/ulpevent.c b/net/sctp/ulpevent.c index 8d198ae03606..85c64658bd0b 100644 --- a/net/sctp/ulpevent.c +++ b/net/sctp/ulpevent.c @@ -989,7 +989,7 @@ static void sctp_ulpevent_receive_data(struct sctp_ulpevent *event,  	skb = sctp_event2skb(event);  	/* Set the owner and charge rwnd for bytes received.  */  	sctp_ulpevent_set_owner(event, asoc); -	sctp_assoc_rwnd_update(asoc, false); +	sctp_assoc_rwnd_decrease(asoc, skb_headlen(skb));  	if (!skb->data_len)  		return; @@ -1011,7 +1011,6 @@ static void sctp_ulpevent_release_data(struct sctp_ulpevent *event)  {  	struct sk_buff *skb, *frag;  	unsigned int	len; -	struct sctp_association *asoc;  	/* Current stack structures assume that the rcv buffer is  	 * per socket.   For UDP style sockets this is not true as @@ -1036,11 +1035,8 @@ static void sctp_ulpevent_release_data(struct sctp_ulpevent *event)  	}  done: -	asoc = event->asoc; -	sctp_association_hold(asoc); +	sctp_assoc_rwnd_increase(event->asoc, len);  	sctp_ulpevent_release_owner(event); -	sctp_assoc_rwnd_update(asoc, true); -	sctp_association_put(asoc);  }  static void sctp_ulpevent_release_frag_data(struct sctp_ulpevent *event) | 
