Looking at net/core/datagram.c:wait_for_packet the code will return 0
when the socket has been shutdown. That causes skb_recv_datagram to loop
which is in itself obviously incorrect for a shutdown socket (its in EOF
state)
I suspect it should read something like
/* Socket shut down? */
if (sk->shutdown & RCV_SHUTDOWN)
{
current->state = TASK_RUNNING;
remove_wait_queue(sk->sleep, &wait);
*err = 0;
return 1;
}
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/