[ovs-dev] [PATCH 2/2] datapath: Fix WARN_ON sending GSO packets to userspace in Linux 2.6.22+.

Justin Pettit jpettit at nicira.com
Sat Sep 12 13:45:36 UTC 2009


On Sep 12, 2009, at 12:53 AM, Ben Pfaff wrote:

> +		err = skb_cow(skb, sizeof *header);
> +		if (err)
> +			goto err_kfree_nskb;

Is there a reason that this is not "err_kfree_skb"?  It seems like  
you'd need to free the original skb, which may not happen if nskb is  
null.

> +err_kfree_skb:
> +	kfree_skb(skb);
> +err_kfree_nskb:
> +	while (nskb) {
> +		kfree_skb(skb);

Will this code path result in a double free of skb?  I'd think you'd  
want "skb = NULL" just after the first call to kfree_skb().

Other than these questions about error handling, it seems reasonable  
to me.  Ian's more familiar with the code and has a test case that  
triggers the problem, so I'll defer to him.

--Justin






More information about the dev mailing list