--- udevd-final.old 2019-09-24 17:35:25.000000000 +0000 +++ udevd-final 2020-04-20 16:55:32.742965759 +0000 @@ -22,6 +22,10 @@ # Source function library. . /etc/init.d/functions +BUG_29282=no + +SourceIfNotEmpty /etc/sysconfig/udev-rule-generator + LOCKFILE=/run/lock/subsys/udevd-final RETVAL=0 @@ -39,6 +43,30 @@ action "Handling remaining udev events:" udevadm trigger \ && touch "$LOCKFILE" RETVAL=$? + + MODULES=`ls -dl /sys/class/net/*/device/driver | sed "s|.*/||" | uniq` + is_yes "$BUG_29282" && \ + { # https://bugzilla.altlinux.org/29282#c34 + for MODULE in $MODULES; do + rmmod $MODULE && action "reloading $MODULE module for triggering udev" modprobe $MODULE + RETVAL=$[RETVAL+$?] + done + sleep 2 + udevadm control --reload-rules + } + [ -f /etc/udev/rules.d/70-persistent-net.rules ] && \ + { + MODIFIED=`stat -c %Y /etc/udev/rules.d/70-persistent-net.rules` + CURRIENT=`date +%s` + if [ $[$CURRIENT-$MODIFIED] -lt 300 ]; then + for MODULE in $MODULES; do + rmmod $MODULE && action "reloading $MODULE module for renaming interfaces" modprobe $MODULE + RETVAL=$[RETVAL+$?] + done + sleep 1 + fi + } + return $RETVAL }