unsigned int udp_poll (struct file * file, struct socket * sock, poll_table * wait);
file - file struct sock - socket wait - poll table
This is same as datagram poll, except for the special case of blocking sockets. If application is using a blocking fd and a packet with checksum error is in the queue; then it could get return from select indicating data available but then block when reading it. Add special case code to work around these arguably broken applications.