Lines 81-106
Link Here
|
81 |
} |
81 |
} |
82 |
|
82 |
|
83 |
unload_modules_24() { |
83 |
unload_modules_24() { |
84 |
local LOADED_MODULES="$(lsmod | sed -n -e 's/^\(snd[^ ]*\) .*/\1/p')" |
84 |
local LOADED_MODULES="$(lsmod | sort -n -k 3 | sed -n -e 's/^\(snd[^ ]*\) .*/\1/p')" |
85 |
local MODULE |
85 |
local MODULE |
86 |
for MODULE in ${LOADED_MODULES} ; do |
86 |
for MODULE in ${LOADED_MODULES} ; do |
87 |
rmmod "${MODULE}" |
87 |
modprobe -r "${MODULE}" |
88 |
done |
88 |
done |
89 |
rmmod soundcore 2>/dev/null |
89 |
modprobe -r soundcore 2>/dev/null |
90 |
rmmod gameport 2>/dev/null |
90 |
modprobe -r gameport 2>/dev/null |
91 |
|
91 |
|
92 |
lsmod | grep -vq '^snd' |
92 |
lsmod | grep -vq '^snd' |
93 |
} |
93 |
} |
94 |
|
94 |
|
95 |
unload_modules_recursive() { |
95 |
unload_modules_recursive() { |
96 |
local revdeps="$(lsmod | sed -n -e "s/,/ /g" -e "s/^$1 *[0-9]* *[0-9]* \(.*\)/\1/p")" |
96 |
local revdeps="$(lsmod | sort -n -k 3 | sed -n -e "s/,/ /g" -e "s/^$1 *[0-9]* *[0-9]* \(.*\)/\1/p")" |
97 |
|
97 |
|
98 |
for module in ${revdeps} ; do |
98 |
for module in ${revdeps} ; do |
99 |
unload_modules_recursive "${module}" |
99 |
unload_modules_recursive "${module}" |
100 |
done |
100 |
done |
101 |
|
101 |
|
102 |
vebegin "Unloading: $1" |
102 |
vebegin "Unloading: $1" |
103 |
rmmod --wait "$1" |
103 |
modprobe -r "$1" |
104 |
veend $? |
104 |
veend $? |
105 |
} |
105 |
} |
106 |
|
106 |
|
Lines 110-116
Link Here
|
110 |
lsmod | grep -q "^snd[[:space:]]" && unload_modules_recursive snd |
110 |
lsmod | grep -q "^snd[[:space:]]" && unload_modules_recursive snd |
111 |
|
111 |
|
112 |
# Then find the remaining ones, and handle them too. |
112 |
# Then find the remaining ones, and handle them too. |
113 |
for module in $(lsmod | sed -n -e 's/^\(snd[^ ]*\) .*/\1/p'); do |
113 |
for module in $(lsmod | sort -n -k 3 | sed -n -e 's/^\(snd[^ ]*\) .*/\1/p'); do |
114 |
unload_modules_recursive "${module}" |
114 |
unload_modules_recursive "${module}" |
115 |
done |
115 |
done |
116 |
|
116 |
|