163 lines
7.2 KiB
Diff
163 lines
7.2 KiB
Diff
From 8d9ab2755d1341904ca7889f4e05b2151848a759 Mon Sep 17 00:00:00 2001
|
|
From: Harald Hoyer <harald@redhat.com>
|
|
Date: Wed, 13 Apr 2016 11:47:20 +0200
|
|
Subject: [PATCH] Fix regressions with dracut-install with kernel modules
|
|
|
|
Make sure, the same modules are installed as before.
|
|
---
|
|
install/dracut-install.c | 9 +++++----
|
|
modules.d/50drm/module-setup.sh | 4 ++--
|
|
modules.d/90kernel-modules/module-setup.sh | 15 ++++++++-------
|
|
modules.d/90kernel-network-modules/module-setup.sh | 2 +-
|
|
modules.d/90multipath/module-setup.sh | 2 +-
|
|
modules.d/95iscsi/module-setup.sh | 2 +-
|
|
6 files changed, 18 insertions(+), 16 deletions(-)
|
|
|
|
diff --git a/install/dracut-install.c b/install/dracut-install.c
|
|
index a20e06c..c246201 100644
|
|
--- a/install/dracut-install.c
|
|
+++ b/install/dracut-install.c
|
|
@@ -1202,6 +1202,7 @@ static int install_module(struct kmod_module *mod)
|
|
if (!check_module_path(path) || !check_module_symbols(mod)) {
|
|
log_debug("No symbol or patch match for '%s'", path);
|
|
return 0;
|
|
+ //return -ENOENT;
|
|
}
|
|
|
|
log_debug("dracut_install '%s'", path);
|
|
@@ -1295,7 +1296,7 @@ static int install_modules(int argc, char **argv)
|
|
}
|
|
kmod_list_foreach(itr, modlist) {
|
|
mod = kmod_module_get_module(itr);
|
|
- ret = install_module(mod);
|
|
+ ret += install_module(mod);
|
|
}
|
|
kmod_module_unref_list(modlist);
|
|
modlist = 0;
|
|
@@ -1364,13 +1365,13 @@ static int install_modules(int argc, char **argv)
|
|
}
|
|
kmod_list_foreach(itr, modlist) {
|
|
mod = kmod_module_get_module(itr);
|
|
- ret = install_module(mod);
|
|
+ ret += install_module(mod);
|
|
kmod_module_unref(mod);
|
|
}
|
|
kmod_module_unref_list(modlist);
|
|
modlist = 0;
|
|
#else
|
|
- ret = install_module(mod_o);
|
|
+ ret += install_module(mod_o);
|
|
kmod_module_unref(mod_o);
|
|
#endif
|
|
|
|
@@ -1413,7 +1414,7 @@ static int install_modules(int argc, char **argv)
|
|
}
|
|
kmod_list_foreach(itr, modlist) {
|
|
mod = kmod_module_get_module(itr);
|
|
- ret = install_module(mod);
|
|
+ ret += install_module(mod);
|
|
kmod_module_unref(mod);
|
|
}
|
|
kmod_module_unref_list(modlist);
|
|
diff --git a/modules.d/50drm/module-setup.sh b/modules.d/50drm/module-setup.sh
|
|
index e0b2959..661dde9 100755
|
|
--- a/modules.d/50drm/module-setup.sh
|
|
+++ b/modules.d/50drm/module-setup.sh
|
|
@@ -34,8 +34,8 @@ installkernel() {
|
|
if [[ $hostonly ]]; then
|
|
for i in /sys/bus/{pci/devices,soc/devices/soc?}/*/modalias; do
|
|
[[ -e $i ]] || continue
|
|
- if hostonly="" dracut_instmods -s "drm_crtc_init" $(<$i) 2>/dev/null; then
|
|
- if strstr $(modinfo -F filename $(<$i) 2>/dev/null) radeon.ko; then
|
|
+ if hostonly="" dracut_instmods -s "drm_crtc_init" -S "iw_handler_get_spy" $(<$i) 2>/dev/null; then
|
|
+ if strstr "$(modinfo -F filename $(<$i) 2>/dev/null)" radeon.ko; then
|
|
hostonly='' instmods amdkfd
|
|
fi
|
|
fi
|
|
diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kernel-modules/module-setup.sh
|
|
index e97d598..c30715d 100755
|
|
--- a/modules.d/90kernel-modules/module-setup.sh
|
|
+++ b/modules.d/90kernel-modules/module-setup.sh
|
|
@@ -7,20 +7,21 @@ installkernel() {
|
|
if [[ -z $drivers ]]; then
|
|
hostonly='' instmods \
|
|
sr_mod sd_mod scsi_dh ata_piix hid_generic unix \
|
|
- ehci-hcd ehci-pci \
|
|
+ ehci-hcd ehci-pci ehci-platform \
|
|
ohci-hcd ohci-pci \
|
|
uhci-hcd \
|
|
xhci-hcd xhci-pci xhci-plat-hcd \
|
|
- ehci-platform
|
|
-
|
|
- instmods \
|
|
"=drivers/hid" \
|
|
"=drivers/input/serio" \
|
|
"=drivers/input/keyboard" \
|
|
+ "=drivers/usb/storage" \
|
|
+ ${NULL}
|
|
+
|
|
+ instmods \
|
|
yenta_socket scsi_dh_rdac scsi_dh_emc scsi_dh_alua \
|
|
atkbd i8042 usbhid firewire-ohci pcmcia hv-vmbus \
|
|
virtio virtio_blk virtio_ring virtio_pci virtio_scsi \
|
|
- "=drivers/pcmcia" =ide "=drivers/usb/storage"
|
|
+ "=drivers/pcmcia" =ide
|
|
|
|
if [[ "$(uname -p)" == arm* ]]; then
|
|
# arm specific modules
|
|
@@ -33,13 +34,13 @@ installkernel() {
|
|
${NULL}
|
|
fi
|
|
|
|
- dracut_instmods -s "${_blockfuncs}" "=drivers"
|
|
+ dracut_instmods -o -s "${_blockfuncs}" "=drivers"
|
|
|
|
# if not on hostonly mode, install all known filesystems,
|
|
# if the required list is not set via the filesystems variable
|
|
if ! [[ $hostonly ]]; then
|
|
if [[ -z $filesystems ]]; then
|
|
- dracut_instmods -P ".*/(kernel/fs/nfs|kernel/fs/nfsd|kernel/fs/lockd)/.*" '=fs'
|
|
+ dracut_instmods -o -P ".*/(kernel/fs/nfs|kernel/fs/nfsd|kernel/fs/lockd)/.*" '=fs'
|
|
fi
|
|
else
|
|
hostonly='' instmods "${host_fs_types[@]}"
|
|
diff --git a/modules.d/90kernel-network-modules/module-setup.sh b/modules.d/90kernel-network-modules/module-setup.sh
|
|
index c004ff8..11fbab9 100755
|
|
--- a/modules.d/90kernel-network-modules/module-setup.sh
|
|
+++ b/modules.d/90kernel-network-modules/module-setup.sh
|
|
@@ -21,7 +21,7 @@ installkernel() {
|
|
_s390drivers="=drivers/s390/net"
|
|
fi
|
|
|
|
- dracut_instmods -P ".*${_unwanted_drivers}.*" -s "$_net_drivers" "=drivers/net" ${_s390drivers:+"$_s390drivers"}
|
|
+ dracut_instmods -o -P ".*${_unwanted_drivers}.*" -s "$_net_drivers" "=drivers/net" ${_s390drivers:+"$_s390drivers"}
|
|
|
|
#instmods() will take care of hostonly
|
|
instmods \
|
|
diff --git a/modules.d/90multipath/module-setup.sh b/modules.d/90multipath/module-setup.sh
|
|
index 27817bd..0af777d 100755
|
|
--- a/modules.d/90multipath/module-setup.sh
|
|
+++ b/modules.d/90multipath/module-setup.sh
|
|
@@ -58,7 +58,7 @@ installkernel() {
|
|
_s390drivers="=drivers/s390/scsi"
|
|
fi
|
|
|
|
- hostonly='' dracut_instmods -s "$_funcs" "=drivers/scsi" "=drivers/md" ${_s390drivers:+"$_s390drivers"}
|
|
+ hostonly='' dracut_instmods -o -s "$_funcs" "=drivers/scsi" "=drivers/md" ${_s390drivers:+"$_s390drivers"}
|
|
}
|
|
|
|
# called by dracut
|
|
diff --git a/modules.d/95iscsi/module-setup.sh b/modules.d/95iscsi/module-setup.sh
|
|
index 203e313..04937b5 100755
|
|
--- a/modules.d/95iscsi/module-setup.sh
|
|
+++ b/modules.d/95iscsi/module-setup.sh
|
|
@@ -166,7 +166,7 @@ installkernel() {
|
|
_s390drivers="=drivers/s390/scsi"
|
|
fi
|
|
|
|
- dracut_instmods -s "$_funcs" "=drivers/scsi" ${_s390drivers:+"$_s390drivers"}
|
|
+ dracut_instmods -o -s "$_funcs" "=drivers/scsi" ${_s390drivers:+"$_s390drivers"}
|
|
|
|
}
|
|
|