datapath: make skb->csum consistent with rest of networking stack.
[sliver-openvswitch.git] / datapath / vport-lisp.c
index ca2b441..209df59 100644 (file)
@@ -240,6 +240,8 @@ static int lisp_rcv(struct sock *sk, struct sk_buff *skb)
        ethh->h_source[0] = 0x02;
        ethh->h_proto = protocol;
 
+       ovs_skb_postpush_rcsum(skb, skb->data, ETH_HLEN);
+
        ovs_tnl_rcv(vport_from_priv(lisp_port), skb, &tun_key);
        goto out;
 
@@ -377,6 +379,7 @@ static int lisp_tnl_send(struct vport *vport, struct sk_buff *skb)
                                LISP_HLEN, lisp_build_header);
                return tnl_len > 0 ? tnl_len + network_offset : tnl_len;
        default:
+               kfree_skb(skb);
                return 0;
        }
 }