diff options
Diffstat (limited to 'net/openvswitch/vport-vxlan.c')
-rw-r--r-- | net/openvswitch/vport-vxlan.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/net/openvswitch/vport-vxlan.c b/net/openvswitch/vport-vxlan.c index 3277a7520e31..6d39766e7828 100644 --- a/net/openvswitch/vport-vxlan.c +++ b/net/openvswitch/vport-vxlan.c | |||
@@ -222,7 +222,8 @@ static int vxlan_tnl_send(struct vport *vport, struct sk_buff *skb) | |||
222 | { | 222 | { |
223 | struct net *net = ovs_dp_get_net(vport->dp); | 223 | struct net *net = ovs_dp_get_net(vport->dp); |
224 | struct vxlan_port *vxlan_port = vxlan_vport(vport); | 224 | struct vxlan_port *vxlan_port = vxlan_vport(vport); |
225 | __be16 dst_port = inet_sk(vxlan_port->vs->sock->sk)->inet_sport; | 225 | struct sock *sk = vxlan_port->vs->sock->sk; |
226 | __be16 dst_port = inet_sk(sk)->inet_sport; | ||
226 | const struct ovs_key_ipv4_tunnel *tun_key; | 227 | const struct ovs_key_ipv4_tunnel *tun_key; |
227 | struct vxlan_metadata md = {0}; | 228 | struct vxlan_metadata md = {0}; |
228 | struct rtable *rt; | 229 | struct rtable *rt; |
@@ -255,7 +256,7 @@ static int vxlan_tnl_send(struct vport *vport, struct sk_buff *skb) | |||
255 | vxflags = vxlan_port->exts | | 256 | vxflags = vxlan_port->exts | |
256 | (tun_key->tun_flags & TUNNEL_CSUM ? VXLAN_F_UDP_CSUM : 0); | 257 | (tun_key->tun_flags & TUNNEL_CSUM ? VXLAN_F_UDP_CSUM : 0); |
257 | 258 | ||
258 | err = vxlan_xmit_skb(rt, skb, fl.saddr, tun_key->ipv4_dst, | 259 | err = vxlan_xmit_skb(rt, sk, skb, fl.saddr, tun_key->ipv4_dst, |
259 | tun_key->ipv4_tos, tun_key->ipv4_ttl, df, | 260 | tun_key->ipv4_tos, tun_key->ipv4_ttl, df, |
260 | src_port, dst_port, | 261 | src_port, dst_port, |
261 | &md, false, vxflags); | 262 | &md, false, vxflags); |