UDP receive path: is this safe?

From: devnetfs <hidden>
Date: 2003-08-24 06:46:12

Hello,

I've created an in-kernel udp socket and set sock->data_ready to
my function foo(). inside foo() i do a skb_recv_datagram() to get
(in noblock mode) the skb's received on the socket. 

is this safe/correct to do?  

as sock->data_ready() path for udp is:
udp_rcv() -> udp_queue_rcv_skb() -> sock_queue_rcv_skb() ->
data_ready()

and skb_recv_datagram() calls skb_dequeue()...

any possible races? as i think there can be multiples callers inside
foo() at the same time (correct?). but then skb_dequeue() should be
safe. but i am unsure of call-path from udp_rcv() to data_ready()?

please enlighten. 

i want to avoid the overhead of converting an skb to iovec (by 
calling udp_recvmsg) and hence pursuing this path.


thanks in advance,
A.



__________________________________
Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software
http://sitebuilder.yahoo.com
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help