diff options
Diffstat (limited to 'net/sctp/socket.c')
| -rw-r--r-- | net/sctp/socket.c | 10 | 
1 files changed, 5 insertions, 5 deletions
diff --git a/net/sctp/socket.c b/net/sctp/socket.c index fd0631e70d46..ab943e8fb1db 100644 --- a/net/sctp/socket.c +++ b/net/sctp/socket.c @@ -69,7 +69,7 @@  #include <net/sctp/stream_sched.h>  /* Forward declarations for internal helper functions. */ -static bool sctp_writeable(struct sock *sk); +static bool sctp_writeable(const struct sock *sk);  static void sctp_wfree(struct sk_buff *skb);  static int sctp_wait_for_sndbuf(struct sctp_association *asoc, long *timeo_p,  				size_t msg_len); @@ -140,7 +140,7 @@ static inline void sctp_set_owner_w(struct sctp_chunk *chunk)  	refcount_add(sizeof(struct sctp_chunk), &sk->sk_wmem_alloc);  	asoc->sndbuf_used += chunk->skb->truesize + sizeof(struct sctp_chunk); -	sk->sk_wmem_queued += chunk->skb->truesize + sizeof(struct sctp_chunk); +	sk_wmem_queued_add(sk, chunk->skb->truesize + sizeof(struct sctp_chunk));  	sk_mem_charge(sk, chunk->skb->truesize);  } @@ -9144,7 +9144,7 @@ static void sctp_wfree(struct sk_buff *skb)  	struct sock *sk = asoc->base.sk;  	sk_mem_uncharge(sk, skb->truesize); -	sk->sk_wmem_queued -= skb->truesize + sizeof(struct sctp_chunk); +	sk_wmem_queued_add(sk, -(skb->truesize + sizeof(struct sctp_chunk)));  	asoc->sndbuf_used -= skb->truesize + sizeof(struct sctp_chunk);  	WARN_ON(refcount_sub_and_test(sizeof(struct sctp_chunk),  				      &sk->sk_wmem_alloc)); @@ -9299,9 +9299,9 @@ void sctp_write_space(struct sock *sk)   * UDP-style sockets or TCP-style sockets, this code should work.   *  - Daisy   */ -static bool sctp_writeable(struct sock *sk) +static bool sctp_writeable(const struct sock *sk)  { -	return sk->sk_sndbuf > sk->sk_wmem_queued; +	return READ_ONCE(sk->sk_sndbuf) > READ_ONCE(sk->sk_wmem_queued);  }  /* Wait for an association to go into ESTABLISHED state. If timeout is 0,  |