[ovs-dev] [PATCH 2/2] datapath: Simplify vport_send() error handling.

Jesse Gross jesse at nicira.com
Mon Dec 22 05:39:21 UTC 2014


On Sun, Dec 21, 2014 at 6:17 PM, Jesse Gross <jesse at nicira.com> wrote:
> On Fri, Dec 19, 2014 at 7:25 PM, Pravin B Shelar <pshelar at nicira.com> wrote:
>> Today vport-send has complex error handling because it involves
>> freeing skb and updating stats depending on return value from
>> vport send implementation.
>> This can be simplified by delegating responsibility of freeing
>> skb to the vport implementation for all cases. So that
>> vport-send needs just update stats.
>>
>> Signed-off-by: Pravin B Shelar <pshelar at nicira.com>
>
> It's somewhat non-obvious to me that handle_offloads should free the
> skb in the event of an error. It seems like this introduces more
> complexity to this patch as well.
>
> As an example of the problem, I think that the previous patch
> introduces a double free in the non-compat case. This is because it
> updates the skb freeing for the compat code in handle_offloads() but
> the equivalent update to the non-compat code isn't made until this
> patch.

I now see that the upstream iptunnel_handle_offloads() also frees the
skb on error but it seems like this has introduced some errors as
well. It looks like several tunnel protocols continue using the skb
after calling handle_offloads without any kind of check.



More information about the dev mailing list