Remove now unnecessary kldstat check before attempting to load modules.

Since r233109, kldload has the -n option, which silently ignores options
that are already loaded.

https://lists.freebsd.org/pipermail/freebsd-rc/2018-December/003899.html

Note that this script no longer reports if the module is already loaded,
but it could be argued this wasn't particularly useful information.

PR:			docs/234248
Reviewed by:		bcr (docs), kib, rgrimes (visual)
Approved by:		jilles
Differential Revision:	https://reviews.freebsd.org/D18670
This commit is contained in:
Chris Rees 2019-04-07 18:31:45 +00:00
parent b2689b12b1
commit f5dfe75da5
10 changed files with 26 additions and 47 deletions

View File

@ -27,10 +27,10 @@ linux_start()
local _tmpdir
echo -n ' linux'
load_kld -e 'linux(aout|elf)' linux
load_kld linux
case `sysctl -n hw.machine_arch` in
amd64)
load_kld -e 'linux64elf' linux64
load_kld linux64
;;
esac
if [ -x /compat/linux/sbin/ldconfigDisabled ]; then

View File

@ -34,11 +34,11 @@ evdev_enabled()
bthidd_prestart()
{
if evdev_enabled; then
load_kld -m uinput uinput
load_kld uinput
fi
load_kld -m kbdmux kbdmux
load_kld -m vkbd vkbd
load_kld -m ng_btsocket ng_btsocket
load_kld kbdmux
load_kld vkbd
load_kld ng_btsocket
return 0
}

View File

@ -75,7 +75,7 @@ cfumass_start()
return "${err}"
fi
load_kld -e cfumass cfumass
load_kld cfumass
# If the template is already switched to Mass Storage, then reset
# it to -1 to force the host to reenumerate it; otherwise it might

View File

@ -46,7 +46,7 @@ kld_start()
echo 'Loading kernel modules:'
for _kld in $kld_list ; do
load_kld -e ${_kld}.ko $_kld
load_kld $_kld
done
}

View File

@ -114,7 +114,7 @@ mdconfig_start()
continue
fi
if [ "${_file}" != "${_file%.uzip}" ]; then
load_kld -m g_uzip geom_uzip || return 3
load_kld geom_uzip || return 3
# sleep a bit to allow creation of /dev/mdX.uzip
sleep 2
fi

View File

@ -123,7 +123,7 @@ mdconfig2_start()
# been created.
if [ "${_type}" = "vnode" -a "${_fs}" != "/" ]; then
if [ "${_file}" != "${_file%.uzip}" ]; then
load_kld -m g_uzip geom_uzip || return 3
load_kld geom_uzip || return 3
fi
if is_readonly ${_fs}; then
warn "${_fs} is mounted read-only, skipping ${_md}."

View File

@ -27,7 +27,7 @@ mountcritremote_precmd()
case "`mount -d -a -t nfs 2> /dev/null`" in
*mount_nfs*)
# Handle absent nfs client support
load_kld -m nfs nfscl || return 1
load_kld nfscl || return 1
;;
esac
return 0

View File

@ -346,7 +346,7 @@ syscons_start()
for i in `kldstat | awk '$5 ~ "_saver\.ko$" { print $5 }'`; do
kldunload ${i}
done
load_kld -e _saver ${saver}_saver
load_kld ${saver}_saver
;;
esac

View File

@ -1853,48 +1853,29 @@ mount_md()
}
# Code common to scripts that need to load a kernel module
# if it isn't in the kernel yet. Syntax:
# load_kld [-e regex] [-m module] file
# where -e or -m chooses the way to check if the module
# is already loaded:
# regex is egrep'd in the output from `kldstat -v',
# module is passed to `kldstat -m'.
# The default way is as though `-m file' were specified.
# if it isn't in the kernel yet. Syntax:
# load_kld file
load_kld()
{
local _loaded _mod _opt _re
local _opt
# Silently ignore legacy options; they are unnecessary
while getopts "e:m:" _opt; do
case "$_opt" in
e) _re="$OPTARG" ;;
m) _mod="$OPTARG" ;;
*) err 3 'USAGE: load_kld [-e regex] [-m module] file' ;;
e) ;;
m) ;;
*) err 3 'USAGE: load_kld file' ;;
esac
done
shift $(($OPTIND - 1))
if [ $# -ne 1 ]; then
err 3 'USAGE: load_kld [-e regex] [-m module] file'
err 3 'USAGE: load_kld file'
fi
_mod=${_mod:-$1}
_loaded=false
if [ -n "$_re" ]; then
if kldstat -v | egrep -q -e "$_re"; then
_loaded=true
fi
if ! kldload -n "$1"; then
warn "Unable to load kernel module $1"
return 1
else
if kldstat -q -m "$_mod"; then
_loaded=true
fi
fi
if ! $_loaded; then
if ! kldload "$1"; then
warn "Unable to load kernel module $1"
return 1
else
info "$1 kernel module loaded."
fi
else
debug "load_kld: $1 kernel module already loaded."
info "$1 kernel module loaded."
fi
return 0
}

View File

@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
.Dd March 21, 2019
.Dd April 7, 2019
.Dt RC.CONF 5
.Os
.Sh NAME
@ -249,9 +249,7 @@ Default
.It Va kld_list
.Pq Vt str
A whitespace-separated list of kernel modules to load right after
the local disks are mounted, without any
.Pa .ko
extension or path.
the local disks are mounted, with optional path.
Loading modules at this point in the boot process is
much faster than doing it via
.Pa /boot/loader.conf