39 lines
1.3 KiB
Diff
39 lines
1.3 KiB
Diff
From f4e9ea879f38bea92069e9397028caa5d81e5aee Mon Sep 17 00:00:00 2001
|
|
From: Martin Wilck <mwilck@suse.com>
|
|
Date: Sat, 17 Sep 2022 23:05:39 +0200
|
|
Subject: [PATCH] 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.
|
|
|
|
Reference:https://github.com/dracutdevs/dracut/commit/f4e9ea879f38bea92069e9397028caa5d81e5aee
|
|
Conflict:NA
|
|
---
|
|
modules.d/40network/net-lib.sh | 2 ++
|
|
1 file changed, 2 insertions(+)
|
|
|
|
diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh
|
|
index a294a390..8b876926 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"
|
|
}
|
|
|
|
--
|
|
2.23.0
|