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>
parent
9eab750787
commit
bff5416520
|
|
@ -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"
|
||||
|
|
|
|||
Loading…
Reference in New Issue