The macvlan dev should propagate the return value of mac address change for lower device in the passthru mode, instead of always return 0.
Signed-off-by: Zhang Shengju <zhangshen...@cmss.chinamobile.com> --- drivers/net/macvlan.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c index 346ad2f..ade1213 100644 --- a/drivers/net/macvlan.c +++ b/drivers/net/macvlan.c @@ -703,10 +703,8 @@ static int macvlan_set_mac_address(struct net_device *dev, void *p) if (!is_valid_ether_addr(addr->sa_data)) return -EADDRNOTAVAIL; - if (vlan->mode == MACVLAN_MODE_PASSTHRU) { - dev_set_mac_address(vlan->lowerdev, addr); - return 0; - } + if (vlan->mode == MACVLAN_MODE_PASSTHRU) + return dev_set_mac_address(vlan->lowerdev, addr); return macvlan_sync_address(dev, addr->sa_data); } -- 1.8.3.1