udp_tunnel: Pass UDP socket down through udp_tunnel{, 6}_xmit_skb().
[linux-2.6-block.git] / net / openvswitch / vport-vxlan.c
index 3277a7520e31320479e0d40bbd66b6dd6f89de59..6d39766e7828c4351a004fa8ce7d839348c3681d 100644 (file)
@@ -222,7 +222,8 @@ static int vxlan_tnl_send(struct vport *vport, struct sk_buff *skb)
 {
        struct net *net = ovs_dp_get_net(vport->dp);
        struct vxlan_port *vxlan_port = vxlan_vport(vport);
-       __be16 dst_port = inet_sk(vxlan_port->vs->sock->sk)->inet_sport;
+       struct sock *sk = vxlan_port->vs->sock->sk;
+       __be16 dst_port = inet_sk(sk)->inet_sport;
        const struct ovs_key_ipv4_tunnel *tun_key;
        struct vxlan_metadata md = {0};
        struct rtable *rt;
@@ -255,7 +256,7 @@ static int vxlan_tnl_send(struct vport *vport, struct sk_buff *skb)
        vxflags = vxlan_port->exts |
                      (tun_key->tun_flags & TUNNEL_CSUM ? VXLAN_F_UDP_CSUM : 0);
 
-       err = vxlan_xmit_skb(rt, skb, fl.saddr, tun_key->ipv4_dst,
+       err = vxlan_xmit_skb(rt, sk, skb, fl.saddr, tun_key->ipv4_dst,
                             tun_key->ipv4_tos, tun_key->ipv4_ttl, df,
                             src_port, dst_port,
                             &md, false, vxflags);