You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
2.3 KiB
68 lines
2.3 KiB
6 years ago
|
From bff5416520f950942b4040ed10281d2ccaf9f09a Mon Sep 17 00:00:00 2001
|
||
|
From: Hannes Reinecke <hare@suse.de>
|
||
|
Date: Thu, 25 Feb 2016 20:58:11 +0800
|
||
|
Subject: [PATCH] 95iscsi: Fixup bnx2i offload booting
|
||
|
|
||
|
bnx2i is using a separate iSCSI offload engine with a separate
|
||
|
MAC address. As a result, the iBFT information is displaying
|
||
|
a MAC address which does not relate to any MAC address from
|
||
|
the network interfaces.
|
||
|
In addition, the iSCSI offload engine works independently on
|
||
|
the NIC, so we do not need to enable the NIC for iSCSI offload
|
||
|
to work.
|
||
|
This patch modifies the automatic iBFT detection to not set
|
||
|
the 'ip=ibft' flag when bnx2i offload is detected.
|
||
|
|
||
|
References: bnc#855747
|
||
|
|
||
|
Signed-off-by: Hannes Reinecke <hare@suse.de>
|
||
|
Signed-off-by: Thomas Renninger <trenn@suse.de>
|
||
|
---
|
||
|
modules.d/95iscsi/module-setup.sh | 26 +++++++++++++++++++++++++-
|
||
|
1 file changed, 25 insertions(+), 1 deletion(-)
|
||
|
|
||
|
diff --git a/modules.d/95iscsi/module-setup.sh b/modules.d/95iscsi/module-setup.sh
|
||
|
index 422bea72..181da3c7 100755
|
||
|
--- a/modules.d/95iscsi/module-setup.sh
|
||
|
+++ b/modules.d/95iscsi/module-setup.sh
|
||
|
@@ -29,14 +29,38 @@ check() {
|
||
|
return 0
|
||
|
}
|
||
|
|
||
|
+get_ibft_mod() {
|
||
|
+ local ibft_mac=$1
|
||
|
+ # Return the iSCSI offload module for a given MAC address
|
||
|
+ iscsiadm -m iface | while read iface_name iface_desc ; do
|
||
|
+ IFS=$','
|
||
|
+ set -- $iface_desc
|
||
|
+ if [ "$ibft_mac" = "$2" ] ; then
|
||
|
+ echo $1
|
||
|
+ return 0
|
||
|
+ fi
|
||
|
+ unset IFS
|
||
|
+ done
|
||
|
+}
|
||
|
+
|
||
|
install_ibft() {
|
||
|
# When iBFT / iscsi_boot is detected:
|
||
|
# - Use 'ip=ibft' to set up iBFT network interface
|
||
|
+ # Note: bnx2i is using a different MAC address of iSCSI offloading
|
||
|
+ # so the 'ip=ibft' parameter must not be set
|
||
|
# - specify firmware booting cmdline parameter
|
||
|
|
||
|
for d in /sys/firmware/* ; do
|
||
|
+ if [ -d ${d}/ethernet0 ] ; then
|
||
|
+ read ibft_mac < ${d}/ethernet0/mac
|
||
|
+ ibft_mod=$(get_ibft_mod $ibft_mac)
|
||
|
+ fi
|
||
|
+ if [ -z "$ibft_mod" ] && [ -d ${d}/ethernet1 ] ; then
|
||
|
+ read ibft_mac < ${d}/ethernet1/mac
|
||
|
+ ibft_mod=$(get_ibft_mod $ibft_mac)
|
||
|
+ fi
|
||
|
if [ -d ${d}/initiator ] ; then
|
||
|
- if [ ${d##*/} = "ibft" ] ; then
|
||
|
+ if [ ${d##*/} = "ibft" ] && [ "$ibft_mod" != "bnx2i" ] ; then
|
||
|
echo -n "ip=ibft "
|
||
|
fi
|
||
|
echo -n "rd.iscsi.firmware=1"
|