#!/bin/sh
# Copyright 2006	Kel Modderman <kelrin@tpg.com.au>
# 
# Taken from madwifi scripts. This unloads madwifi

: ${PATTERN='\(ath_.*\|wlan_.*\|wlan\)$'}
: ${MAX_TRIES=10}

test "`id -u`" = 0 || {
	echo "ERROR: You must be root to run this script" >&2
	exit 1
}

test -r /proc/modules || {
	echo "ERROR: Cannot read /proc/modules" >&2
	exit 1
}

tries="$MAX_TRIES"
while test "$tries" != "0"; do
	skipped=0
	IFS='
'
	for line in `cat /proc/modules`; do
		IFS=' 	'
		set x $line
		name="$2"
		size="$3"
		use_count="$4"
		use_name="$5"
		state="$6"
		expr "$name" : "$PATTERN" >/dev/null || continue

		# Compatibility for Linux 2.4.x
		test -z "$state" && { use_name="-"; state="Live"; }

		if test "$state" != "Live" || test "$use_count" != "0" || \
		   test "$use_name" != "-"; then
			# Don't skip unload in the last run
			if test "$tries" != "1"; then
				skipped=1
				continue
			fi
		fi

		echo "Unloading \"$name\""
		sync	# to be safe
		/sbin/rmmod "$name" || {
			echo "ERROR: cannot unload module \"$name\"" >&2
			exit 1
		}
		sync    # to be even safer
	done
	test "$skipped" = "0" && break
	tries=$(($tries - 1))
done

exit 0
