diff options
author | Vinod Koul <vkoul@kernel.org> | 2018-12-18 18:04:56 +0530 |
---|---|---|
committer | Vinod Koul <vkoul@kernel.org> | 2019-01-21 14:54:31 +0530 |
commit | 3454585ce5875e02cb6c0dd5bd0b87541f7d1c65 (patch) | |
tree | 2211a1470b6dd05dfd9fbd5d8b841e13fc11efb1 | |
parent | 2ff6dfa33d8b286f55b5fc4cc50c675aafe98aa5 (diff) |
dsa slave changes, need explanation
Signed-off-by: Vinod Koul <vkoul@kernel.org>
-rw-r--r-- | net/dsa/slave.c | 4 |
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; |