]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
realtek: avoid redundant configuration of MAC addresses 21644/head
authorJan Hoffmann <jan@3e8.eu>
Thu, 22 Jan 2026 19:30:10 +0000 (20:30 +0100)
committerHauke Mehrtens <hauke@hauke-m.de>
Tue, 10 Feb 2026 00:39:52 +0000 (01:39 +0100)
Only configure the eth0 MAC address when it is not already done in the
device tree. To do this, create a new variable "eth0_mac".

Also avoid setting "label_mac" for devices already having it defined in
the device tree.

Signed-off-by: Jan Hoffmann <jan@3e8.eu>
Link: https://github.com/openwrt/openwrt/pull/21644
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
target/linux/realtek/base-files/etc/board.d/02_network

index b06829c3d01aef7c26d4954459da371f3f16b6b8..7b32997d61f6bf65b571dcbdc329af24a57de74b 100644 (file)
@@ -45,6 +45,7 @@ realtek_setup_macs()
        local board="$1"
        local lan_list="$2"
 
+       local eth0_mac=""
        local lan_mac=""
        local lan_mac_start=""
        local lan_mac_end=""
@@ -58,8 +59,7 @@ realtek_setup_macs()
        tplink,t1600g-28ts-v3|\
        xikestor,sks8300-8t|\
        xikestor,sks8300-12e2t2x)
-               label_mac=$(get_mac_label)
-               lan_mac="$label_mac"
+               lan_mac=$(get_mac_label)
                lan_mac_start=$lan_mac
                ;;
        hpe,1920-8g|\
@@ -73,6 +73,7 @@ realtek_setup_macs()
        hpe,1920-48g-poe)
                label_mac=$(mtd_get_mac_binary factory 0x68)
                lan_mac=$label_mac
+               eth0_mac=$lan_mac
                mac_count1=$(hexdump -v -n 4 -s 0x110 -e '4 "%d"' $(find_mtd_part factory) 2>/dev/null)
                mac_count2=$(hexdump -v -n 4 -s 0x114 -e '4 "%d"' $(find_mtd_part factory) 2>/dev/null)
                lan_mac_start=$(macaddr_add $lan_mac 2)
@@ -91,15 +92,18 @@ realtek_setup_macs()
                lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
                [ -z "$lan_mac" ] || [ "$lan_mac" = "00:e0:4c:00:00:00" ] && lan_mac=$(macaddr_random)
                lan_mac_start=$lan_mac
+               eth0_mac=$lan_mac
                ;;
        xikestor,sks8300-8x)
                lan_mac=$(mtd_get_mac_binary board-info 0x1f1)
                lan_mac_start=$lan_mac
+               eth0_mac=$lan_mac
                ;;
        xikestor,sks8310-8x)
                lan_mac=$(mtd_get_mac_binary factory 0x80)
                label_mac="$lan_mac"
                lan_mac_start=$lan_mac
+               eth0_mac=$lan_mac
                ;;
        allnet,all-sg8208m|\
        apresia,aplgs120gtss|\
@@ -154,12 +158,14 @@ realtek_setup_macs()
                label_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
                [ -z "$lan_mac" ] && lan_mac=$label_mac
                lan_mac_start=$lan_mac
+               eth0_mac=$lan_mac
                ;;
        esac
 
+       [ -n "$eth0_mac" ] && ucidef_set_network_device_mac eth0 $eth0_mac
+
        [ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac
        [ -n "$lan_mac" ] && ucidef_set_bridge_mac "$lan_mac"
-       [ -n "$lan_mac" ] && ucidef_set_network_device_mac eth0 $lan_mac
 
        [ -n "$lan_mac_start" ] && realtek_setup_macs_lan "$lan_list" "$lan_mac_start" "$lan_mac_end"