#!/bin/bash
# version 3
RELEASE=`uname -r`

echo `date`
echo "*** STARTING TEST	***"

#for MODULE in `find /lib/modules/"$RELEASE"/ -type f -iname '*.o' -or -iname '*.ko'`
for MODULE in `find /lib/modules/"$RELEASE"/ -type f -iname '*.ko'`
do
	#MODULE=`echo $MODULE | sed 's#^.*/\(.*\)\.ko#\1#g'`
	MODULE=`basename "$MODULE" .ko`
	modinfo $MODULE > /dev/null || exit
	LOADED=`lsmod | grep '"$MODULE"'`

	echo "*** Removing module ${MODULE} ***"
	modprobe -r "$MODULE" || continue
	echo "*** Loading module ${MODULE} ***"
	modprobe "$MODULE" || continue

	# unload module back if it was not loaded before
	if [ -z "$LOADED" ]; then
		modprobe -r "$MODULE" || continue
	fi
done

echo `date`
echo "*** END OF TEST ***"
