summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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