On Sat, Jan 06, 2018 at 07:16:22PM +0000, Al Viro wrote: > > + __poll_t (*poll_mask) (struct file *file, struct socket *sock, > > + __poll_t events); > > Does that sucker need struct file? It turns out udp needs it: /* Check for false positives due to checksum errors */ if ((mask & POLLRDNORM) && !(file->f_flags & O_NONBLOCK) && !(sk->sk_shutdown & RCV_SHUTDOWN) && first_packet_length(sk) == -1) mask &= ~(POLLIN | POLLRDNORM);