On Wed, Nov 9, 2016 at 8:10 AM, Jiri Benc <jb...@redhat.com> wrote:
> On Sat,  5 Nov 2016 11:45:52 -0700, Pravin B Shelar wrote:
>> @@ -2058,7 +2059,7 @@ static void vxlan_xmit_one(struct sk_buff *skb, struct 
>> net_device *dev,
>>               err = vxlan_build_skb(skb, &rt->dst, sizeof(struct iphdr),
>>                                     vni, md, flags, udp_sum);
>>               if (err < 0)
>> -                     goto xmit_tx_error;
>> +                     goto tx_error;
>
> Seems you're leaking rt here?
>
I have moved the dst error handling to vxlan_build_skb(), which is
releasing the dst entry.

>> @@ -2117,11 +2118,9 @@ static void vxlan_xmit_one(struct sk_buff *skb, 
>> struct net_device *dev,
>>               skb_scrub_packet(skb, xnet);
>>               err = vxlan_build_skb(skb, ndst, sizeof(struct ipv6hdr),
>>                                     vni, md, flags, udp_sum);
>> -             if (err < 0) {
>> -                     dst_release(ndst);
>> -                     dev->stats.tx_errors++;
>> -                     return;
>> -             }
>> +             if (err < 0)
>> +                     goto tx_error;
>
> And ndst here?
>
same as above.

Reply via email to