From: Martin Wilck Date: Sat, 17 Sep 2022 21:05:39 +0000 (+0200) Subject: fix(network): don't use same ifname multiple times X-Git-Tag: 058~130 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f4e9ea879f38bea92069e9397028caa5d81e5aee;p=thirdparty%2Fdracut.git fix(network): don't use same ifname multiple times If multiple ibft interfaces exist, set_ifname() may reuse the same name (usually "ibft0"), because it's usually called cmdline time, when no interfaces exist in sysfs yet. Remember the number used set and don't use it again. --- diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh index a294a3902..8b876926d 100755 --- a/modules.d/40network/net-lib.sh +++ b/modules.d/40network/net-lib.sh @@ -222,6 +222,7 @@ set_ifname() { for n in $(getargs ifname=); do strstr "$n" "$mac" && echo "${n%%:*}" && return done + [ ! -f "/tmp/set_ifname_$name" ] || read -r num < "/tmp/set_ifname_$name" # otherwise, pick a new name and use that while :; do num=$((num + 1)) @@ -232,6 +233,7 @@ set_ifname() { break done echo "ifname=$name$num:$mac" >> /etc/cmdline.d/45-ifname.conf + echo "$num" > "/tmp/set_ifname_$name" echo "$name$num" }