X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=net%2Fx25%2Fx25_timer.c;h=2af190dc5b014ef8f544772d188c668e367f3a90;hb=3721050afc6cb6ddf6de0f782e2054ebcc225e9b;hp=0a92e1da3922dc802b51cc93dd0d9f8a0a9d2f22;hpb=2016ef789a9ded2e169ad1c028ae3deb5302571f;p=powerpc.git diff --git a/net/x25/x25_timer.c b/net/x25/x25_timer.c index 0a92e1da39..2af190dc5b 100644 --- a/net/x25/x25_timer.c +++ b/net/x25/x25_timer.c @@ -3,7 +3,7 @@ * * This is ALPHA test software. This code may break your machine, * randomly fail to work with new releases, misbehave and/or generally - * screw up. It might even work. + * screw up. It might even work. * * This code REQUIRES 2.1.15 or higher * @@ -99,8 +99,8 @@ static void x25_heartbeat_expiry(unsigned long param) { struct sock *sk = (struct sock *)param; - bh_lock_sock(sk); - if (sock_owned_by_user(sk)) /* can currently only occur in state 3 */ + bh_lock_sock(sk); + if (sock_owned_by_user(sk)) /* can currently only occur in state 3 */ goto restart_heartbeat; switch (x25_sk(sk)->state) { @@ -114,8 +114,9 @@ static void x25_heartbeat_expiry(unsigned long param) if (sock_flag(sk, SOCK_DESTROY) || (sk->sk_state == TCP_LISTEN && sock_flag(sk, SOCK_DEAD))) { + bh_unlock_sock(sk); x25_destroy_socket(sk); - goto unlock; + return; } break; @@ -128,7 +129,6 @@ static void x25_heartbeat_expiry(unsigned long param) } restart_heartbeat: x25_start_heartbeat(sk); -unlock: bh_unlock_sock(sk); }