aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWarner Losh <imp@FreeBSD.org>2021-07-08 19:44:21 +0000
committerWarner Losh <imp@FreeBSD.org>2021-07-16 17:45:11 +0000
commit3b125a8b3174e4efa2e98d02dfbba4e3ae9e52d5 (patch)
treee538f7d3ae5e1978844eed97dc8e543a318088b7
parentbd14c0c6cdaf14fdebdf517bf161d60b3b43fa21 (diff)
downloadsrc-3b125a8b3174e4efa2e98d02dfbba4e3ae9e52d5.tar.gz
src-3b125a8b3174e4efa2e98d02dfbba4e3ae9e52d5.zip
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
-rwxr-xr-xlibexec/rc/rc.d/devmatch25
1 files changed, 15 insertions, 10 deletions
diff --git a/libexec/rc/rc.d/devmatch b/libexec/rc/rc.d/devmatch
index e45683decab7..d48661ca9e15 100755
--- a/libexec/rc/rc.d/devmatch
+++ b/libexec/rc/rc.d/devmatch
@@ -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}"