• Ken-ichirou MATSUZAWA's avatar
    netlink: rx mmap: fix POLLIN condition · 0ef70770
    Ken-ichirou MATSUZAWA authored
    Poll() returns immediately after setting the kernel current frame
    (ring->head) to SKIP from user space even though there is no new
    frame. And in a case of all frames is VALID, user space program
    unintensionally sets (only) kernel current frame to UNUSED, then
    calls poll(), it will not return immediately even though there are
    VALID frames.
    
    To avoid situations like above, I think we need to scan all frames
    to find VALID frames at poll() like netlink_alloc_skb(),
    netlink_forward_ring() finding an UNUSED frame at skb allocation.
    Signed-off-by: default avatarKen-ichirou MATSUZAWA <chamas@h4.dion.ne.jp>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    0ef70770
af_netlink.c 76.2 KB