Implement blacklisting for devmatch
devmatch_blacklist is a space separated list of modules (w/o the .ko or full path) to exclude from devmatch's processing. Differential Revision: https://reviews.freebsd.org/D16735
This commit is contained in:
parent
ce1ba01c8a
commit
8a317ce4b3
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=338238
@ -42,6 +42,7 @@ ddb_config="/etc/ddb.conf" # ddb(8) config file.
|
||||
devd_enable="YES" # Run devd, to trigger programs on device tree changes.
|
||||
devd_flags="" # Additional flags for devd(8).
|
||||
devmatch_enable="YES" # Demand load kernel modules based on device ids.
|
||||
devmatch_blacklist="" # List of modules (w/o .ko) to exclude from devmatch.
|
||||
#kld_list="" # Kernel modules to load after local disks are mounted
|
||||
kldxref_enable="YES" # Build linker.hints files with kldxref(8).
|
||||
kldxref_clobber="NO" # Overwrite old linker.hints at boot.
|
||||
|
@ -41,15 +41,15 @@ one_nomatch="$2"
|
||||
|
||||
devmatch_start()
|
||||
{
|
||||
local x
|
||||
local x m list
|
||||
|
||||
if [ -n "$one_nomatch" ]; then
|
||||
x=$(devmatch -p "${one_nomatch}" | sort -u)
|
||||
list=$(devmatch -p "${one_nomatch}" | sort -u)
|
||||
else
|
||||
x=$(devmatch | sort -u)
|
||||
list=$(devmatch | sort -u)
|
||||
fi
|
||||
|
||||
[ -n "$x" ] || return
|
||||
[ -n "$list" ] || return
|
||||
|
||||
# While kldload can accept multiple modules
|
||||
# on the line at once, we loop here in case
|
||||
@ -57,8 +57,14 @@ devmatch_start()
|
||||
# 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
|
||||
# devmactch_blacklist.
|
||||
devctl freeze
|
||||
for m in ${x}; do
|
||||
x=$(echo ${devmatch_blacklist} | tr ' ' '#')
|
||||
for m in ${list}; do
|
||||
case "#${x}#" in
|
||||
*"#${m}#"*) continue ;;
|
||||
esac
|
||||
echo "Autoloading module: ${m}"
|
||||
kldload -n ${m}
|
||||
done
|
||||
|
Loading…
Reference in New Issue
Block a user