diff --git a/etc/init.d/ifup b/etc/init.d/ifup index 1391e87..65362d3 100644 --- a/etc/init.d/ifup +++ b/etc/init.d/ifup @@ -111,22 +111,27 @@ case "$1" in ifconfig $DEVNAME up WAITTIME=7 ZAHLER=0 - while [ ${ZAHLER} -le ${WAITTIME} ]; do - if [ ! `ethtool $DEVNAME|grep Link|awk '{print $3}'` == "yes" ]; then - (( ZAHLER++ )) - else - break - fi - sleep 1 - done - if [ "`ethtool $DEVNAME|grep Link|awk '{print $3}'`" == "yes" ]; then - /sbin/if_up $DEVNAME - touch /var/run/net_up - fi - else - /sbin/if_up $DEVNAME - touch /var/run/net_up - fi + if ! ethtool $DEVNAME|grep -q "No data available"; then + while [ ${ZAHLER} -le ${WAITTIME} ]; do + if [ ! `ethtool $DEVNAME|grep Link|awk '{print $3}'` == "yes" ]; then + (( ZAHLER++ )) + else + break + fi + sleep 1 + done + if [ `ethtool $DEVNAME|grep Link|awk '{print $3}'` == "yes" ]; then + /sbin/if_up $DEVNAME + touch /var/run/net_up + fi + else + /sbin/if_up $DEVNAME + touch /var/run/net_up + fi + else + /sbin/if_up $DEVNAME + touch /var/run/net_up + fi done if [ ! -f /var/run/net_up ] && [ -f /etc/nsswitch.default ]; then cp /etc/nsswitch.files /etc/nsswitch.conf