Skip to content
  • Rainer Weikusat's avatar
    core: enable more fine-grained datagram reception control · ea3793ee
    Rainer Weikusat authored
    
    
    The __skb_recv_datagram routine in core/ datagram.c provides a general
    skb reception factility supposed to be utilized by protocol modules
    providing datagram sockets. It encompasses both the actual recvmsg code
    and a surrounding 'sleep until data is available' loop. This is
    inconvenient if a protocol module has to use additional locking in order
    to maintain some per-socket state the generic datagram socket code is
    unaware of (as the af_unix code does). The patch below moves the recvmsg
    proper code into a new __skb_try_recv_datagram routine which doesn't
    sleep and renames wait_for_more_packets to
    __skb_wait_for_more_packets, both routines being exported interfaces. The
    original __skb_recv_datagram routine is reimplemented on top of these
    two functions such that its user-visible behaviour remains unchanged.
    
    Signed-off-by: default avatarRainer Weikusat <rweikusat@mobileactivedefense.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    ea3793ee