aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorPravin B Shelar <pshelar@nicira.com>2015-08-30 18:09:38 -0700
committerDavid S. Miller <davem@davemloft.net>2015-08-31 12:28:56 -0700
commit4c22279848c531fc7f555d463daf3d0df963bd41 (patch)
tree38315c4715393860962cc00a19f47fa1554b6add /drivers/net
parentipv4: fix 32b build (diff)
downloadlinux-dev-4c22279848c531fc7f555d463daf3d0df963bd41.tar.xz
linux-dev-4c22279848c531fc7f555d463daf3d0df963bd41.zip
ip-tunnel: Use API to access tunnel metadata options.
Currently tun-info options pointer is used in few cases to pass options around. But tunnel options can be accessed using ip_tunnel_info_opts() API without using the pointer. Following patch removes the redundant pointer and consistently make use of API. Signed-off-by: Pravin B Shelar <pshelar@nicira.com> Acked-by: Thomas Graf <tgraf@suug.ch> Reviewed-by: Jesse Gross <jesse@nicira.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/geneve.c9
-rw-r--r--drivers/net/vxlan.c4
2 files changed, 5 insertions, 8 deletions
diff --git a/drivers/net/geneve.c b/drivers/net/geneve.c
index 68b0f0325fc7..da3259ce7c8d 100644
--- a/drivers/net/geneve.c
+++ b/drivers/net/geneve.c
@@ -143,7 +143,6 @@ static void geneve_rx(struct geneve_sock *gs, struct sk_buff *skb)
if (ip_tunnel_collect_metadata() || gs->collect_md) {
__be16 flags;
- void *opts;
flags = TUNNEL_KEY | TUNNEL_GENEVE_OPT |
(gnvh->oam ? TUNNEL_OAM : 0) |
@@ -154,11 +153,9 @@ static void geneve_rx(struct geneve_sock *gs, struct sk_buff *skb)
gnvh->opt_len * 4);
if (!tun_dst)
goto drop;
-
/* Update tunnel dst according to Geneve options. */
- opts = ip_tunnel_info_opts(&tun_dst->u.tun_info,
- gnvh->opt_len * 4);
- memcpy(opts, gnvh->options, gnvh->opt_len * 4);
+ ip_tunnel_info_opts_set(&tun_dst->u.tun_info,
+ gnvh->options, gnvh->opt_len * 4);
} else {
/* Drop packets w/ critical options,
* since we don't support any...
@@ -663,7 +660,7 @@ static netdev_tx_t geneve_xmit(struct sk_buff *skb, struct net_device *dev)
tunnel_id_to_vni(key->tun_id, vni);
if (key->tun_flags & TUNNEL_GENEVE_OPT)
- opts = ip_tunnel_info_opts(info, info->options_len);
+ opts = ip_tunnel_info_opts(info);
udp_csum = !!(key->tun_flags & TUNNEL_CSUM);
err = geneve_build_skb(rt, skb, key->tun_flags, vni,
diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c
index 6c5269aea544..ce988fd01b34 100644
--- a/drivers/net/vxlan.c
+++ b/drivers/net/vxlan.c
@@ -1271,7 +1271,7 @@ static int vxlan_udp_encap_recv(struct sock *sk, struct sk_buff *skb)
goto drop;
info = &tun_dst->u.tun_info;
- md = ip_tunnel_info_opts(info, sizeof(*md));
+ md = ip_tunnel_info_opts(info);
} else {
memset(md, 0, sizeof(*md));
}
@@ -1948,7 +1948,7 @@ static void vxlan_xmit_one(struct sk_buff *skb, struct net_device *dev,
tos = info->key.tos;
if (info->options_len)
- md = ip_tunnel_info_opts(info, sizeof(*md));
+ md = ip_tunnel_info_opts(info);
} else {
md->gbp = skb->mark;
}