diff options
author | David S. Miller <davem@davemloft.net> | 2009-06-16 08:40:30 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-06-16 08:40:30 -0400 |
commit | 14ebaf81e13ce66bff275380b246796fd16cbfa1 (patch) | |
tree | 6da2824a42a07f325787130d093e1a986fa29110 /net/x25/x25_timer.c | |
parent | a1870b9cc280fe16fed13994810f8a1687be3bcf (diff) |
x25: Fix sleep from timer on socket destroy.
If socket destuction gets delayed to a timer, we try to
lock_sock() from that timer which won't work.
Use bh_lock_sock() in that case.
Signed-off-by: David S. Miller <davem@davemloft.net>
Tested-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'net/x25/x25_timer.c')
-rw-r--r-- | net/x25/x25_timer.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/x25/x25_timer.c b/net/x25/x25_timer.c index d3e3e54db936..5c5db1a36399 100644 --- a/net/x25/x25_timer.c +++ b/net/x25/x25_timer.c | |||
@@ -113,7 +113,7 @@ static void x25_heartbeat_expiry(unsigned long param) | |||
113 | (sk->sk_state == TCP_LISTEN && | 113 | (sk->sk_state == TCP_LISTEN && |
114 | sock_flag(sk, SOCK_DEAD))) { | 114 | sock_flag(sk, SOCK_DEAD))) { |
115 | bh_unlock_sock(sk); | 115 | bh_unlock_sock(sk); |
116 | x25_destroy_socket(sk); | 116 | x25_destroy_socket_from_timer(sk); |
117 | return; | 117 | return; |
118 | } | 118 | } |
119 | break; | 119 | break; |