From e3fc2b0026a5ca45de76f3e2a950dca85a361bd3 Mon Sep 17 00:00:00 2001 From: Christian Marangi Date: Tue, 12 Dec 2023 01:15:55 +0100 Subject: [PATCH] system-linux: skip refreshing MAC on master change if custom MAC If custom MAC or a default MAC needs to be applied, skip refreshing MAC after master change to correctly apply the custom MAC. Signed-off-by: Christian Marangi --- system-linux.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/system-linux.c b/system-linux.c index b64c007..e7945e3 100644 --- a/system-linux.c +++ b/system-linux.c @@ -2262,7 +2262,8 @@ system_if_apply_settings(struct device *dev, struct device_settings *s, uint64_t if (apply_mask & DEV_OPT_MASTER) { #if LINUX_VERSION_CODE >= KERNEL_VERSION(6,1,0) system_set_master(dev, s->master_ifindex); - system_refresh_orig_macaddr(dev, &dev->orig_settings); + if (!(apply_mask & (DEV_OPT_MACADDR | DEV_OPT_DEFAULT_MACADDR)) || dev->external) + system_refresh_orig_macaddr(dev, &dev->orig_settings); #else netifd_log_message(L_WARNING, "%s Your kernel is older than linux 6.1.0, changing DSA port conduit is not supported!", dev->ifname); #endif -- 2.30.2