On Mon, Aug 17, 2015 at 2:11 PM, Pravin B Shelar [off-list ref] wrote:
quoted hunk ↗ jump to hunk
diff --git a/drivers/net/geneve.c b/drivers/net/geneve.c
index 546494d..cb2d874 100644
--- a/drivers/net/geneve.c
+++ b/drivers/net/geneve.c
+static int geneve_configure(struct net *net, struct net_device *dev,
+ __be32 rem_addr, __u32 vni, __u8 ttl, __u8 tos,
+ __u16 dst_port, bool metadata)
[...]
- if (!data[IFLA_GENEVE_ID] || !data[IFLA_GENEVE_REMOTE])
- return -EINVAL;
+ if (metadata && rtnl_dereference(gn->collect_md_tun))
+ return -EEXIST;
This will allow you to configure a collect_md_tun devices and normal
devices on top of each other, even though the latter will never get
hit in that situation.