summaryrefslogtreecommitdiffstats
path: root/net/sctp/socket.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/sctp/socket.c')
-rw-r--r--net/sctp/socket.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/net/sctp/socket.c b/net/sctp/socket.c
index b497ee8ae279..15401d09efc4 100644
--- a/net/sctp/socket.c
+++ b/net/sctp/socket.c
@@ -164,7 +164,7 @@ static inline void sctp_set_owner_w(struct sctp_chunk *chunk)
164 sizeof(struct sk_buff) + 164 sizeof(struct sk_buff) +
165 sizeof(struct sctp_chunk); 165 sizeof(struct sctp_chunk);
166 166
167 atomic_add(sizeof(struct sctp_chunk), &sk->sk_wmem_alloc); 167 refcount_add(sizeof(struct sctp_chunk), &sk->sk_wmem_alloc);
168 sk->sk_wmem_queued += chunk->skb->truesize; 168 sk->sk_wmem_queued += chunk->skb->truesize;
169 sk_mem_charge(sk, chunk->skb->truesize); 169 sk_mem_charge(sk, chunk->skb->truesize);
170} 170}
@@ -7684,7 +7684,7 @@ static void sctp_wfree(struct sk_buff *skb)
7684 sizeof(struct sk_buff) + 7684 sizeof(struct sk_buff) +
7685 sizeof(struct sctp_chunk); 7685 sizeof(struct sctp_chunk);
7686 7686
7687 atomic_sub(sizeof(struct sctp_chunk), &sk->sk_wmem_alloc); 7687 WARN_ON(refcount_sub_and_test(sizeof(struct sctp_chunk), &sk->sk_wmem_alloc));
7688 7688
7689 /* 7689 /*
7690 * This undoes what is done via sctp_set_owner_w and sk_mem_charge 7690 * This undoes what is done via sctp_set_owner_w and sk_mem_charge