--- 2.2.10/net/ipv4/af_inet.c Tue Jul 13 00:33:23 1999 +++ /tmp/af_inet.c Sat Aug 7 15:39:25 1999 @@ -471,11 +471,9 @@ */ timeout = 0; if (sk->linger && !(current->flags & PF_EXITING)) { - timeout = MAX_SCHEDULE_TIMEOUT; - - /* XXX This makes no sense whatsoever... -DaveM */ - if (!sk->lingertime) - timeout = HZ*sk->lingertime; + timeout = HZ * sk->lingertime; + if (!timeout) + timeout = MAX_SCHEDULE_TIMEOUT; } sock->sk = NULL; sk->socket = NULL;