summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Marangi2023-12-12 00:15:55 +0000
committerFelix Fietkau2024-01-04 12:35:39 +0000
commitb9442415c785e1fa58a0718606991fa51fa5e5d3 (patch)
treea537fba69de58479420ace65bc62f7e945d5bafa
parent923c4370a1d4f1ca6714287f0e8ff1bc3ad131b0 (diff)
downloadnetifd-b9442415c785e1fa58a0718606991fa51fa5e5d3.tar.gz
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 <ansuelsmth@gmail.com>
-rw-r--r--system-linux.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/system-linux.c b/system-linux.c
index 0137386..f4dbc18 100644
--- a/system-linux.c
+++ b/system-linux.c
@@ -2251,7 +2251,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