Handle crypto modules with and without modaliases
If new kernels have modules split out, handle the case, where modules have to modalias and just install them. Also add the crypto drivers and names to host_modalias.
parent
352a49a21d
commit
ee916b72cc
|
@ -1480,7 +1480,7 @@ dracut_kernel_post() {
|
|||
|
||||
module_is_host_only() {
|
||||
local _mod=$1
|
||||
local _modenc a i
|
||||
local _modenc a i _k _s _v _aliases
|
||||
_mod=${_mod##*/}
|
||||
_mod=${_mod%.ko}
|
||||
_modenc=${_mod//-/_}
|
||||
|
@ -1497,19 +1497,25 @@ module_is_host_only() {
|
|||
# this covers the case, where a new module is introduced
|
||||
# or a module was renamed
|
||||
# or a module changed from builtin to a module
|
||||
|
||||
if [[ -d /lib/modules/$kernel_current ]]; then
|
||||
# if the modinfo can be parsed, but the module
|
||||
# is not loaded, then we can safely return 1
|
||||
modinfo -F filename "$_mod" &>/dev/null && return 1
|
||||
fi
|
||||
|
||||
# Finally check all modalias, if we install for a kernel
|
||||
# different from the current one
|
||||
for a in $(modinfo -k $kernel -F alias $_mod 2>/dev/null); do
|
||||
_aliases=$(modinfo -k $kernel -F alias $_mod 2>/dev/null)
|
||||
|
||||
# if the module has no aliases, install it
|
||||
[[ $_aliases ]] || return 0
|
||||
|
||||
# finally check all modalias
|
||||
for a in $_aliases; do
|
||||
for i in "${!host_modalias[@]}"; do
|
||||
[[ $i == $a ]] && return 0
|
||||
done
|
||||
done
|
||||
|
||||
fi
|
||||
|
||||
return 1
|
||||
|
|
|
@ -968,6 +968,11 @@ if [[ $hostonly ]]; then
|
|||
|
||||
rm -f -- "$initdir/.modalias"
|
||||
|
||||
while read _k _s _v; do
|
||||
[ "$_k" != "name" -a "$_k" != "driver" ] && continue
|
||||
host_modalias["$_v"]=1
|
||||
done </proc/crypto
|
||||
|
||||
# check /proc/modules
|
||||
declare -A host_modules
|
||||
while read m rest; do
|
||||
|
|
|
@ -96,7 +96,6 @@ do_fips()
|
|||
_found=0
|
||||
while read _k _s _v; do
|
||||
[ "$_k" != "name" -a "$_k" != "driver" ] && continue
|
||||
[ "$_k" = "driver" ] && _v=$(str_replace "$_v" "_" "-")
|
||||
[ "$_v" != "$_module" ] && continue
|
||||
_found=1
|
||||
break
|
||||
|
|
Loading…
Reference in New Issue