]> git.baikalelectronics.ru Git - kernel.git/commit
core: enable more fine-grained datagram reception control
authorRainer Weikusat <rweikusat@mobileactivedefense.com>
Sun, 6 Dec 2015 21:11:34 +0000 (21:11 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 7 Dec 2015 04:31:54 +0000 (23:31 -0500)
commit85dee2455ebfae0c828bc3ebd9964ac4da87e5ec
treeb10d2b97a880215baf803b25c86bd318db3b4627
parent9a8fcaf6301903591325988a91bfa693d47fc872
core: enable more fine-grained datagram reception control

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: Rainer Weikusat <rweikusat@mobileactivedefense.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/skbuff.h
net/core/datagram.c