On Thu, Mar 16, 2006 at 02:06:26AM -0800, David S. Miller ([EMAIL PROTECTED]) wrote: > From: Evgeniy Polyakov <[EMAIL PROTECTED]> > Date: Thu, 16 Mar 2006 13:02:41 +0300 > > > Actually I added sock_async() checks to detect cases, when ucopy is set > > somewhere, but socket was marked as async later, so I just use > > sock_async() where other cheks could be done. > > Can you see that these two states are mutually exclusive? > It is guarenteed by all the logic surrounding the ucopy > code. > > No packets can be processed except by tp->ucopy.task user. Becuase he > locked the socket and had exclusive access to it when tp->ucopy.task > pointer was set. If the socket is ever unlocked, and packets are > allowed to be processed by other TCP users, tp->ucopy.task will be > cleared to NULL. > > Well, what more can I say to convince you? Perhaps I can suggest to > add a BUG_ON(sock_async(sk)) where tp->ucopy.task is non-NULL if you > don't believe me :-)
I completely understand you :) If socket is marked as async, no ucopy must be done and vice versa. If user starts reading from socket and thus ucopy.task is set, it can not run async code. -- Evgeniy Polyakov - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html