Hi Martin, On Wed, Oct 08, 2014 at 09:54:58AM +0200, Alexander Aring wrote: ... > > here we lost the skb reference from parameter if failed and I don't see > that skb_unshare free it on failing (maybe I am wrong here). > I will do this step by step. 1. call skb_unshare 2. check if cloned 3. call skb_copy 4. call __alloc_skb 5. __alloc_skb return NULL 6. assign to temp nskb; 7. parameter skb will be freed. kfree_skb(skb). 8. skb = nskb; 9. return skb; So I see that kfree_skb(skb) is always called also on failure. So your code seems to be correct. This is a lack of documentation. - Alex -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html