From: Harald Hoyer Date: Tue, 1 Sep 2015 15:22:56 +0000 (+0200) Subject: network/net-lib.sh: fix wait_for_if_up() X-Git-Tag: RHEL-7.2~30 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d8572e0bf4d49a8d2ec71726d0fd38d1c73ca3f7;p=thirdparty%2Fdracut.git network/net-lib.sh: fix wait_for_if_up() wait for <*UP*> and not "state UP" state can be UNKNOWN --- diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh index c8203567e..6034a0911 100755 --- a/modules.d/40network/net-lib.sh +++ b/modules.d/40network/net-lib.sh @@ -523,7 +523,21 @@ wait_for_if_up() { while [ $cnt -lt $timeout ]; do li=$(ip -o link show up dev $1) - [ -n "$li" ] && [ -z "${li##*state UP*}" ] && return 0 + if [ -n "$li" ]; then + case "$li" in + *\*) + return 0;; + *\<*,UP,*\>*) + return 0;; + esac + fi + if strstr "$li" "LOWER_UP" \ + && strstr "$li" "state UNKNOWN" \ + && ! strstr "$li" "DORMANT"; then + return 0 + fi sleep 0.1 cnt=$(($cnt+1)) done