devmatch: Be tolerant of .ko being present.

We document that we did not need .ko on the module names in
devmatch_blocklist, but we really needed them. Keep the documentation
the same, but strip the .ko when we need to use the names so you can
specify either.

PR:			256240
MFC After:		2 weeks
Sponsored by:		Netflix
This commit is contained in:
Warner Losh 2021-07-08 13:44:21 -06:00
parent bf3a385217
commit b29ebb9c65

View File

@ -52,18 +52,23 @@ devmatch_start()
[ -n "$list" ] || return
# While kldload can accept multiple modules
# on the line at once, we loop here in case
# there's some weird error with one of them.
# We also optimize against the false positives
# or drivers that have symbolic links that
# confuse devmatch by running it -n.
# Finally, we filter out all items in the
# devmatch_blocklist.
# While kldload can accept multiple modules on the line at once, we loop
# here in case there's some weird error with one of them. We also
# optimize against the false positives or drivers that have symbolic
# links that confuse devmatch by running it -n. Finally, we filter out
# all items in the devmatch_blocklist.
#
# We strip all the .ko suffixes off so that one may specify modules
# with or without .ko. Prior version documented it was without, while
# the code required it, so accept both now. devmatch produces module
# names with .ko
devctl freeze
x=$(echo ${devmatch_blocklist:-${devmatch_blacklist}} | tr ' ' '#')
x=$(echo '#'${devmatch_blocklist:-${devmatch_blacklist}}'#' | \
sed -e "s/ /#/g;s/\.ko#/#/g")
for m in ${list}; do
case "#${x}#" in
m="${m%.ko}"
case "${x}" in
*"#${m}#"*) continue ;;
esac
echo "Autoloading module: ${m}"