From e2d1632d1ebfe5dee3e5bc4940b74302d988b368 Mon Sep 17 00:00:00 2001
From: Jo-Philipp Wich <jow@openwrt.org>
Date: Wed, 20 May 2009 21:10:45 +0000
Subject: [PATCH] Reload modules with parameters specified This patch makes
 qos-scripts reload a module when there is need to pass some parameters to it.
 It fixes an issue on devices with more than two interfaces where many IMQ
 devices are needed but the module is already loaded with the default
 numdevs=2 Signed-off-by: Vasilis Tsiligiannis <b_tsiligiannis@silverton.gr>

SVN-Revision: 15945
---
 package/qos-scripts/files/usr/lib/qos/generate.sh | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/package/qos-scripts/files/usr/lib/qos/generate.sh b/package/qos-scripts/files/usr/lib/qos/generate.sh
index 6c52027a6a..94c01d4619 100755
--- a/package/qos-scripts/files/usr/lib/qos/generate.sh
+++ b/package/qos-scripts/files/usr/lib/qos/generate.sh
@@ -1,12 +1,21 @@
 #!/bin/sh
 [ -e /etc/functions.sh ] && . /etc/functions.sh || . ./functions.sh
-[ -x /sbin/modprobe ] && insmod="modprobe" || insmod="insmod"
+[ -x /sbin/modprobe ] && {
+	insmod="modprobe"
+	rmmod="$insmod -r"
+} || {
+	insmod="insmod"
+	rmmod="rmmod"
+}
 
 add_insmod() {
 	eval "export isset=\${insmod_$1}"
 	case "$isset" in
 		1) ;;
-		*) append INSMOD "$insmod $* >&- 2>&-" "$N"; export insmod_$1=1;;
+		*) {
+			[ "$2" ] && append INSMOD "$rmmod $1 >&- 2>&-" "$N"
+			append INSMOD "$insmod $* >&- 2>&-" "$N"; export insmod_$1=1
+		};;
 	esac
 }
 
-- 
2.30.2