Thread (12 messages) 12 messages, 2 authors, 2015-09-15

Re: [PATCH v3 net 1/5] ipv6: Refactor common ip6gre_tunnel_init codes

flat view

From: David Miller <davem@davemloft.net>
Date: 2015-09-11 22:31:02

From: Martin KaFai Lau <redacted>
Date: Fri, 11 Sep 2015 11:06:17 -0700
quoted hunk ↗ jump to hunk
@@ -1460,19 +1474,16 @@ static void ip6gre_netlink_parms(struct nlattr *data[],
 static int ip6gre_tap_init(struct net_device *dev)
 {
 	struct ip6_tnl *tunnel;
+	int ret;
 
-	tunnel = netdev_priv(dev);
+	ret = ip6gre_tunnel_init_common(dev);
+	if (ret)
+		return ret;
 
-	tunnel->dev = dev;
-	tunnel->net = dev_net(dev);
-	strcpy(tunnel->parms.name, dev->name);
+	tunnel = netdev_priv(dev);
 
 	ip6gre_tnl_link_config(tunnel, 1);
 
-	dev->tstats = netdev_alloc_pcpu_stats(struct pcpu_sw_netstats);
-	if (!dev->tstats)
-		return -ENOMEM;
-
 	return 0;
 }
Is this really equivalent?

The existing code for GRE tap device initialization would use whatever
ether_setup() left in the broadcast address, it would leave
dev->dev_addr alone, and unconditionally use eth_header_ops.

You are changing behavior here, and it's been like this has been this
way long enough that I can't see clearly whether this is a valid
change or not.  It probably is not.

Either way, even if it is valid, you have to document what is happening
here and why it's ok.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help