From: Jiri Pirko <jiri@resnulli.us>
Date: Sun, 6 Jan 2013 12:41:57 +0000 (+0000)
Subject: ethtool: set addr_assign_type to NET_ADDR_SET when addr is passed on create
X-Git-Tag: firefly_0821_release~3680^2~1092^2~451
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=2afb9b533423a9b97f84181e773cf9361d98fed6;p=firefly-linux-kernel-4.4.55.git

ethtool: set addr_assign_type to NET_ADDR_SET when addr is passed on create

In case user passed address via netlink during create, NET_ADDR_PERM was set.
That is not correct so fix this by setting NET_ADDR_SET.

Signed-off-by: Jiri Pirko <jiri@resnulli.us>
Signed-off-by: David S. Miller <davem@davemloft.net>
---

diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
index 9969afb82271..9a419b099482 100644
--- a/net/core/rtnetlink.c
+++ b/net/core/rtnetlink.c
@@ -1667,9 +1667,11 @@ struct net_device *rtnl_create_link(struct net *net,
 
 	if (tb[IFLA_MTU])
 		dev->mtu = nla_get_u32(tb[IFLA_MTU]);
-	if (tb[IFLA_ADDRESS])
+	if (tb[IFLA_ADDRESS]) {
 		memcpy(dev->dev_addr, nla_data(tb[IFLA_ADDRESS]),
 				nla_len(tb[IFLA_ADDRESS]));
+		dev->addr_assign_type = NET_ADDR_SET;
+	}
 	if (tb[IFLA_BROADCAST])
 		memcpy(dev->broadcast, nla_data(tb[IFLA_BROADCAST]),
 				nla_len(tb[IFLA_BROADCAST]));