On Fri, 2005-07-08 at 17:22 -0700, David S. Miller wrote: > From: "David S. Miller" <[EMAIL PROTECTED]> > Date: Fri, 08 Jul 2005 16:27:56 -0700 (PDT) > > > I'll see if I can figure out a way to deal with this cleanly. > > I figured out a way. Sridhar can you give this patch below > a test?
I did a quick run of the regression tests with the patch and i didn't see any problems. > > I use the control block to store the chunk pointer, then > pass skb's around. It's use is confined only to sctp_rcv() > and sctp_backlog_rcv() so I didn't put it into any of the > SCTP header files, it can stay local to sctp/input.c > > BTW, the rest of the SCTP input path should be audited to make sure > any other use of the SKB control block on input does not spam the > ipv4/ipv6 parameter area (struct inet_skb_parm and struct > inet6_skb_parm). That must be preserved on input (unless you > unshare the SKB of course). That's why TCP's skb control block > (in net/tcp.h) uses this header as well. We do a skb_clone() before using the SKB control block to store the ulpevent structure, so i guess it should be OK. > > Also, if you can get this patch working, can you check to see > if it works to change sctp_chunk_free() to go: > > BUG_ON(!list_empty(&chunk->list)); Even this works fine, so we can replace the list_empty() check with BUG_ON. Thanks Sridhar - 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