--- 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
 }