dracut/0065-95iscsi-Fixup-bnx2i-offload-booting.patch
Marcus Meissner 73faa804ea Accepting request 237520 from home:hreinecke:branches:Base:System
- 40network: always start netroot in ifup.sh (bnc#881235)
  * Add: 0066-40network-always-start-netroot-in-ifup.sh.patch
- 95fcoe: check() always returns 255
  * Add: 0067-95fcoe-check-always-returns-255.patch
- 95fcoe-uefi: Test for EFI firmware (bnc#882412)
  * Add: 0068-95fcoe-uefi-Test-for-EFI-firmware.patch

- Rename patches to match git repository:
  * Old: more-fips-adjustments.patch
  * New: 0057-01fips-Include-some-more-hmacs.patch
  * Old: dracut-check-supported.patch
  * New: 0058-dracut-add-warning-when-including-unsupported-module.patch
- Add 99suse module to git repository:
  * Remove: parse-suse-initrd.sh
  * Remove: module-setup-initrd.sh
  * Add: 0059-99suse-Add-SUSE-specific-initrd-parsing.patch
- Add write-ifcfg-suse.sh to git repository:
  * Remove: write-ifcfg-suse.sh
  * Add: 0060-45ifcfg-Add-SUSE-specific-write-ifcfg-file.patch
- Fixup error messages in write-ifcfg-suse.sh (bnc#881286)
  * Add: 0061-45ifcfg-Fixup-error-message-in-write-ifcfg-suse.patch
- Add missing 'libgcc_s.so' library (bnc#881692):
  * Add: 0062-95iscsi-Install-libgcc_s-library.patch
  * Add: 0063-90multipath-Install-libgcc_s-library.patch
- Install missing scsi_dh_alua module (bnc#871617)
  * Add: 0064-90kernel-modules-install-scsi_dh_alua.patch
- 95iscsi: fixup bnx2i offload booting (bnc#855747)
  * Add: 0065-95iscsi-Fixup-bnx2i-offload-booting.patch

  Add: more-fips-adjustments.patch

OBS-URL: https://build.opensuse.org/request/show/237520
OBS-URL: https://build.opensuse.org/package/show/Base:System/dracut?expand=0&rev=160
2014-06-17 07:43:08 +00:00

70 lines
2.4 KiB
Diff

From 4c9b6f84183857781f93fba3ae75cbce2e0dcbd3 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare@suse.de>
Date: Fri, 13 Jun 2014 12:30:11 +0200
Subject: 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>
---
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 41785e1..e94e913 100755
--- a/modules.d/95iscsi/module-setup.sh
+++ b/modules.d/95iscsi/module-setup.sh
@@ -2,14 +2,38 @@
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh
+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"
--
1.8.4.5