summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarsten Hopp <karsten@redhat.de>2004-08-16 09:39:22 +0000
committerKarsten Hopp <karsten@redhat.de>2004-08-16 09:39:22 +0000
commit9b68c44b9131f9dd952818d96e5f9fe61b16a95a (patch)
treea3aa9c99776a3823d6cdd284183d5431c0f6a692
parentd3d2057766b640ccf1b92af1362e9f64e68bcfd6 (diff)
downloadanaconda-9b68c44b9131f9dd952818d96e5f9fe61b16a95a.tar.gz
anaconda-9b68c44b9131f9dd952818d96e5f9fe61b16a95a.tar.xz
anaconda-9b68c44b9131f9dd952818d96e5f9fe61b16a95a.zip
- wait for sysfs files to show up to work around timing problems
(#129167)
-rw-r--r--loader2/linuxrc.s39025
1 files changed, 20 insertions, 5 deletions
diff --git a/loader2/linuxrc.s390 b/loader2/linuxrc.s390
index 46f95a795..b2be04dbc 100644
--- a/loader2/linuxrc.s390
+++ b/loader2/linuxrc.s390
@@ -40,6 +40,21 @@ doreboot()
exit 0
}
+sysecho () {
+ file=$1
+ shift
+ i=1
+ while [ $i -le 10 ] ; do
+ if [ ! -f $file ]; then
+ sleep 1
+ i=$((i+1))
+ else
+ break
+ fi
+ done
+ [ -f $file ] && echo $* > $file
+}
+
startinetd()
{
echo
@@ -75,7 +90,7 @@ readcmsfile() # $1=dasdport $2=filename
elif [ ${#1} == 4 ]; then
dev="0.0.${1}"
fi
- echo 0 > /sys/bus/ccw/drivers/dasd-eckd/$dev/online
+ sysecho /sys/bus/ccw/drivers/dasd-eckd/$dev/online 0
rmmod dasd_eckd_mod
rmmod dasd_mod
}
@@ -87,9 +102,9 @@ setupdevice()
exit 1
fi
SYSDIR=${SUBCHANNELS//,*/} # get first subchannel. This is where the device can be brought online
- echo "$SUBCHANNELS" >/sys/bus/ccwgroup/drivers/${DIRNAME}/group
- [ -n "$PORTNAME" ] && echo "$PORTNAME" > /sys/bus/ccwgroup/drivers/${DIRNAME}/${SYSDIR}/portname
- echo 1 > /sys/bus/ccwgroup/drivers/${DIRNAME}/${SYSDIR}/online
+ sysecho /sys/bus/ccwgroup/drivers/${DIRNAME}/group "$SUBCHANNELS"
+ [ -n "$PORTNAME" ] && sysecho /sys/bus/ccwgroup/drivers/${DIRNAME}/${SYSDIR}/portname "$PORTNAME"
+ sysecho /sys/bus/ccwgroup/drivers/${DIRNAME}/${SYSDIR}/online 1
}
convertchandev()
@@ -271,7 +286,7 @@ elif [ ":$NETTYPE" = ":iucv" ]; then
insmod fsm$LO
insmod iucv$LO
insmod netiucv$LO
- echo $PEERID > /sys/bus/iucv/drivers/netiucv/connection
+ sysecho /sys/bus/iucv/drivers/netiucv/connection $PEERID
ifconfig $DEVICE $IPADDR $MMTU pointopoint $GATEWAY
echo "alias $DEVICE iucv" >> /tmp/modprobe.conf
elif [ "$NETTYPE" = "lcs" -o "$NETTYPE" = "tr" ]; then