From 7335bd1e2358560ac461ef23715a0098f78330fb Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Fri, 24 Apr 2015 11:54:07 +0200
Subject: [PATCH] Defer modprobe of HW modules, until udev is running
Also honor blacklisting
(cherry picked from commit 437dad70e9525a21da873652080bbd62a9d8b96a)
---
modules.d/95fcoe/parse-fcoe.sh | 5 ++---
modules.d/95iscsi/parse-iscsiroot.sh | 9 ++-------
2 files changed, 4 insertions(+), 10 deletions(-)
diff --git a/modules.d/95fcoe/parse-fcoe.sh b/modules.d/95fcoe/parse-fcoe.sh
index 745a78c6..e8a77e08 100755
--- a/modules.d/95fcoe/parse-fcoe.sh
+++ b/modules.d/95fcoe/parse-fcoe.sh
@@ -22,10 +22,9 @@
# BRCM: Later, should check whether bnx2x is loaded first before loading bnx2fc so do not load bnx2fc when there are no Broadcom adapters
-[ -e /sys/bus/fcoe/ctlr_create ] || modprobe -a fcoe || die "FCoE requested but kernel/initrd does not support FCoE"
+[ -e /sys/bus/fcoe/ctlr_create ] || modprobe -b -a fcoe || die "FCoE requested but kernel/initrd does not support FCoE"
-modprobe bnx2fc >/dev/null 2>&1
-udevadm settle --timeout=30
+initqueue --onetime modprobe -b -q bnx2fc
# FCoE actually supported?
[ -e /sys/bus/fcoe/ctlr_create ] || modprobe fcoe || die "FCoE requested but kernel/initrd does not support FCoE"
diff --git a/modules.d/95iscsi/parse-iscsiroot.sh b/modules.d/95iscsi/parse-iscsiroot.sh
index 3d74ff2e..80201d4e 100755
--- a/modules.d/95iscsi/parse-iscsiroot.sh
+++ b/modules.d/95iscsi/parse-iscsiroot.sh
@@ -89,16 +89,11 @@ if [ -z "$netroot" ] || ! [ "${netroot%%:*}" = "iscsi" ]; then
fi
initqueue --unique --onetime --timeout /sbin/iscsiroot timeout "$netroot" "$NEWROOT"
-
-modprobe -b -q qla4xxx
-modprobe -b -q cxgb3i
-modprobe -b -q cxgb4i
-modprobe -b -q bnx2i
-modprobe -b -q be2iscsi
+initqueue --onetime modprobe --all -b -q qla4xxx cxgb3i cxgb4i bnx2i be2iscsi
# ISCSI actually supported?
if ! [ -e /sys/module/iscsi_tcp ]; then
- modprobe -q iscsi_tcp || die "iscsiroot requested but kernel/initrd does not support iscsi"
+ modprobe -b -q iscsi_tcp || die "iscsiroot requested but kernel/initrd does not support iscsi"
fi
if [ -n "$netroot" ] && [ "$root" != "/dev/root" ] && [ "$root" != "dhcp" ]; then