From: Thomas Graf <[EMAIL PROTECTED]> Date: Mon, 15 Aug 2005 16:43:57 +0200
> Dave, I found another problem in the earlier patch of mine, > when we free the clone portion and the parent is still alive > we used to set UNAVAIL in the else branch but at this point > the skb could have been gone already, I fixed this in this > patch. This patch hangs the machine on boot for me. Probably this is occuring, once again, on the first TCP usage which is the only spot which will use fclones in this patch. I thought firstly that it might be due to the child's fclone field not being initialized at __alloc_skb() time. So I fixed that up like so: + if (fclone) { + struct sk_buff *n = skb + 1; + + skb->fclone = SKB_FCLONE_ORIG; + n->fclone = SKB_FCLONE_UNAVAILABLE; + } That is a real bug, because we do not explicitly initialize the child skb with a memset() here, only the parent SKB gets that. But things are still busted somehow. Still looking. - 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