Fix handling of "one_nomatch" shell variable to preserve its contents

appearing as a single argument passed to devmatch(8).

Don't depend on "sort" utility from usr/bin which might not be
available when devd is started.

Sponsored by:	Mellanox Technologies
This commit is contained in:
hselasky 2018-02-17 13:32:29 +00:00
parent 92760e7696
commit 1536b4e784

View File

@ -37,13 +37,17 @@ desc="Use devmatch(8) to load kernel modules"
start_cmd="${name}_start"
stop_cmd=':'
[ -n "$2" ] && one_nomatch="-p '$2'"
one_nomatch="$2"
devmatch_start()
{
local x
x=$(devmatch ${one_nomatch} | sort -u)
if [ -n "$one_nomatch" ]; then
x=$(devmatch -p "${one_nomatch}")
else
x=$(devmatch)
fi
[ -n "$x" ] || return
@ -53,8 +57,8 @@ devmatch_start()
# We also optimize against the false positives
# or drivers that have symbolic links that
# confuse devmatch by running it -n.
echo "Autoloading modules: ${x}"
for m in ${x}; do
echo "Autoloading module: ${m}"
kldload -n ${m}
done
}