Thread (20 messages) flat view 20 messages, 4 authors, 2013-03-17

Re: BUG: IPv4: Attempt to release TCP socket in state 1

From: Hannes Frederic Sowa <hidden>
Date: 2013-03-17 06:39:52
Also in: lkml

On Sat, Mar 16, 2013 at 10:36:06AM -0700, Eric Dumazet wrote:
quoted hunk ↗ jump to hunk
On Fri, 2013-03-15 at 00:19 +0100, Eric Dumazet wrote:
quoted
Thanks thats really useful, we might miss to increment socket refcount
in a timer setup.
Hmm, please add following debugging patch as well
diff --git a/include/net/sock.h b/include/net/sock.h
index 14f6e9d..fe7c8a6 100644
--- a/include/net/sock.h
+++ b/include/net/sock.h
@@ -530,7 +530,9 @@ static inline void sock_hold(struct sock *sk)
  */
 static inline void __sock_put(struct sock *sk)
 {
-	atomic_dec(&sk->sk_refcnt);
+	int newref = atomic_dec_return(&sk->sk_refcnt);
+
+	BUG_ON(newref <= 0);
 }
Couldn't it also be a free from sock_wfree where the wmem accounting went
wrong? It does not care about reference counts there.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help