diff mbox series

ip_gre: fix ip-config error reported by lkp-robot

Message ID 1510070264-56415-1-git-send-email-u9012063@gmail.com
State Rejected, archived
Delegated to: David Miller
Headers show
Series ip_gre: fix ip-config error reported by lkp-robot | expand

Commit Message

William Tu Nov. 7, 2017, 3:57 p.m. UTC
lkp-robot reports the following two errors:
  IP-Config: Failed to open gretap0
  IP-Config: Failed to open erspan0
due to device's mac address is zero.  Fix it by assigning
a random Ethernet address.

Signed-off-by: William Tu <u9012063@gmail.com>
---
 net/ipv4/ip_gre.c | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

David Miller Nov. 13, 2017, 12:58 a.m. UTC | #1
From: William Tu <u9012063@gmail.com>
Date: Tue,  7 Nov 2017 07:57:44 -0800

> lkp-robot reports the following two errors:
>   IP-Config: Failed to open gretap0
>   IP-Config: Failed to open erspan0
> due to device's mac address is zero.  Fix it by assigning
> a random Ethernet address.
> 
> Signed-off-by: William Tu <u9012063@gmail.com>

This isn't really a good idea.

If there is a tunnel source address of zero, which is where the device
address comes from, we shouldn't allow the interface to come up
because it is misconfigured.
diff mbox series

Patch

diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c
index c105a315b1a3..1529a44f6945 100644
--- a/net/ipv4/ip_gre.c
+++ b/net/ipv4/ip_gre.c
@@ -998,6 +998,9 @@  static int ipgre_tunnel_init(struct net_device *dev)
 		dev->header_ops = &ipgre_header_ops;
 	}
 
+	if (is_zero_ether_addr(dev->dev_addr))
+		eth_hw_addr_random(dev);
+
 	return ip_tunnel_init(dev);
 }
 
@@ -1222,6 +1225,9 @@  static int gre_tap_init(struct net_device *dev)
 	dev->priv_flags |= IFF_LIVE_ADDR_CHANGE;
 	netif_keep_dst(dev);
 
+	if (is_zero_ether_addr(dev->dev_addr))
+		eth_hw_addr_random(dev);
+
 	return ip_tunnel_init(dev);
 }