From: Daniel Borkmann <dan...@iogearbox.net> Date: Thu, 10 Sep 2015 01:20:46 +0200
> In case of netlink mmap, there can be situations where received frames > have to be placed into the normal receive queue. The ring buffer indicates > this through NL_MMAP_STATUS_COPY, so the user is asked to pick them up > via recvmsg(2) syscall, and to put the slot back to NL_MMAP_STATUS_UNUSED. > > Commit 0ef707700f1c ("netlink: rx mmap: fix POLLIN condition") changed > polling, so that we walk in the worst case the whole ring through the > new netlink_has_valid_frame(), for example, when the ring would have no > NL_MMAP_STATUS_VALID, but at least one NL_MMAP_STATUS_COPY frame. > > Since we do a datagram_poll() already earlier to pick up a mask that could > possibly contain POLLIN | POLLRDNORM already (due to NL_MMAP_STATUS_COPY), > we can skip checking the rx ring entirely. > > In case the kernel is compiled with !CONFIG_NETLINK_MMAP, then all this is > irrelevant anyway as netlink_poll() is just defined as datagram_poll(). > > Signed-off-by: Daniel Borkmann <dan...@iogearbox.net> Applied. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html