From: Hannes Reinecke Date: Tue, 23 Aug 2016 10:56:53 +0000 (+0200) Subject: Fix DASD with SSID greater than 0 X-Git-Tag: 046~51^2~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e0c3b0793f92c24d442f543a755aed8cc218ab20;p=thirdparty%2Fdracut.git Fix DASD with SSID greater than 0 bsc#989313 Signed-off-by: Thomas Renninger --- diff --git a/modules.d/95dasd_rules/parse-dasd.sh b/modules.d/95dasd_rules/parse-dasd.sh index 1cc621fc0..67ed8022a 100755 --- a/modules.d/95dasd_rules/parse-dasd.sh +++ b/modules.d/95dasd_rules/parse-dasd.sh @@ -84,13 +84,14 @@ for dasd_arg in $(getargs rd.dasd=); do OLDIFS="$IFS" IFS="-" set -- $range - start=${1#0.0.} + prefix=${1%.*} + start=${1##*.} shift - end=${1#0.0.} + end=${1##.} shift IFS="$OLDIFS" for dev in $(seq $(( 16#$start )) $(( 16#$end )) ) ; do - create_udev_rule $(printf "0.0.%04x" "$dev") + create_udev_rule $(printf "%s.%04x" "$prefix" "$dev") done ;; *) @@ -98,8 +99,16 @@ for dasd_arg in $(getargs rd.dasd=); do if [ "$dev" != "$1" ] ; then ro=1 fi - dev=${dev#0.0.} - create_udev_rule $(printf "0.0.%04x" $(( 16#$dev )) ) + OLDIFS="$IFS" + IFS="." + set -- $dev + sid=$1 + shift + ssid=$1 + shift + chan=$1 + IFS="$OLDIFS" + create_udev_rule $(printf "%01x.%01x.%04x" $(( 16#$sid )) $(( 16#$ssid )) $(( 16#$chan )) ) shift ;; esac