diff options
Diffstat (limited to 'net/sctp/socket.c')
-rw-r--r-- | net/sctp/socket.c | 4 |
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 |