aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVinod Koul <vkoul@kernel.org>2018-12-18 18:04:56 +0530
committerVinod Koul <vkoul@kernel.org>2019-01-21 14:54:31 +0530
commit3454585ce5875e02cb6c0dd5bd0b87541f7d1c65 (patch)
tree2211a1470b6dd05dfd9fbd5d8b841e13fc11efb1
parent2ff6dfa33d8b286f55b5fc4cc50c675aafe98aa5 (diff)
dsa slave changes, need explanation
Signed-off-by: Vinod Koul <vkoul@kernel.org>
-rw-r--r--net/dsa/slave.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/net/dsa/slave.c b/net/dsa/slave.c
index a3fcc1d01615..ac97c7a45974 100644
--- a/net/dsa/slave.c
+++ b/net/dsa/slave.c
@@ -77,7 +77,9 @@ static int dsa_slave_open(struct net_device *dev)
if (!(master->flags & IFF_UP))
return -ENETDOWN;
- if (!ether_addr_equal(dev->dev_addr, master->dev_addr)) {
+ if (!is_valid_ether_addr(dev->dev_addr)) {
+ eth_hw_addr_inherit(dev, master);
+ } else if (!ether_addr_equal(dev->dev_addr, master->dev_addr)) {
err = dev_uc_add(master, dev->dev_addr);
if (err < 0)
goto out;