tunneling: Don't leak dst on vlan tagging failure.
[sliver-openvswitch.git] / datapath / tunnel.c
index 07bb00b..98af303 100644 (file)
@@ -1314,9 +1314,9 @@ next:
 error_free:
        tnl_free_linked_skbs(skb);
 error:
-       dst_release(unattached_dst);
        vport_record_error(vport, err);
 out:
+       dst_release(unattached_dst);
        return sent_len;
 }
 
@@ -1571,9 +1571,6 @@ const unsigned char *tnl_get_addr(const struct vport *vport)
 
 void tnl_free_linked_skbs(struct sk_buff *skb)
 {
-       if (unlikely(!skb))
-               return;
-
        while (skb) {
                struct sk_buff *next = skb->next;
                kfree_skb(skb);