git: a4ce800b585b - stable/13 - devmatch: Be tolerant of .ko being present.

Warner Losh imp at FreeBSD.org
Fri Jul 16 18:30:42 UTC 2021


The branch stable/13 has been updated by imp:

URL: https://cgit.FreeBSD.org/src/commit/?id=a4ce800b585ba01dc6e5787521654318906a1efd

commit a4ce800b585ba01dc6e5787521654318906a1efd
Author:     Warner Losh <imp at FreeBSD.org>
AuthorDate: 2021-07-08 19:44:21 +0000
Commit:     Warner Losh <imp at FreeBSD.org>
CommitDate: 2021-07-16 18:28:43 +0000

    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
    
    (cherry picked from commit b29ebb9c65b350e78aedfc790bfcaf9717059b70)
---
 libexec/rc/rc.d/devmatch | 25 +++++++++++++++----------
 1 file changed, 15 insertions(+), 10 deletions(-)

diff --git a/libexec/rc/rc.d/devmatch b/libexec/rc/rc.d/devmatch
index dd61307a4e0a..f7f677b968e7 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}"


More information about the dev-commits-src-all mailing list