From 9c3f00f532a91aa8d536a403196f919e93d7d9c2 Mon Sep 17 00:00:00 2001 From: Chris Leech Date: Oct 22 2012 20:53:14 +0000 Subject: Resolves: #868305 --- diff --git a/iscsi-initiator-utils-add-rh-ver.patch b/iscsi-initiator-utils-add-rh-ver.patch index 5cd2e91..2dd36b2 100644 --- a/iscsi-initiator-utils-add-rh-ver.patch +++ b/iscsi-initiator-utils-add-rh-ver.patch @@ -5,7 +5,7 @@ * some other maintainer could merge a patch without going through us */ -#define ISCSI_VERSION_STR "2.0-873" -+#define ISCSI_VERSION_STR "6.2.0-873.1.el6" ++#define ISCSI_VERSION_STR "6.2.0-873.2.el6" #define ISCSI_VERSION_FILE "/sys/module/scsi_transport_iscsi/version" #endif diff --git a/iscsi-initiator-utils-sync-uio-0.7.6.1.patch b/iscsi-initiator-utils-sync-uio-0.7.6.1.patch new file mode 100644 index 0000000..fcac09e --- /dev/null +++ b/iscsi-initiator-utils-sync-uio-0.7.6.1.patch @@ -0,0 +1,327 @@ +From b15710a9b96c15e8cdcf3dcfda7b40559d565b3c Mon Sep 17 00:00:00 2001 +From: Eddie Wai +Date: Mon, 15 Oct 2012 14:47:54 -0700 +Subject: [PATCH] ISCSIUIO: Updated to 0.7.6.1 + +Signed-off-by: Eddie Wai +--- + iscsiuio/README | 4 ++-- + iscsiuio/RELEASE.TXT | 34 ++++++++++++++++++++++++++++++++-- + iscsiuio/configure | 18 +++++++++--------- + iscsiuio/configure.ac | 4 ++-- + iscsiuio/docs/iscsiuio.8 | 4 ++-- + iscsiuio/src/uip/uip_arp.c | 1 - + iscsiuio/src/unix/libs/bnx2x.c | 19 ++++++++++++++++--- + iscsiuio/src/unix/libs/bnx2x.h | 8 +++++++- + iscsiuio/src/unix/nic.c | 3 ++- + iscsiuio/src/unix/nic_nl.c | 2 +- + 10 files changed, 73 insertions(+), 24 deletions(-) + +diff --git a/iscsiuio/README b/iscsiuio/README +index a716263..e5ee23f 100644 +--- a/iscsiuio/README ++++ b/iscsiuio/README +@@ -1,6 +1,6 @@ + iscsiuio Userspace Tool +-Version 0.7.4.3 +-Aug 16, 2012 ++Version 0.7.6.1 ++Oct 09, 2012 + ------------------------------------------------------ + + This tool is to be used in conjunction with the Broadcom NetXtreme II Linux +diff --git a/iscsiuio/RELEASE.TXT b/iscsiuio/RELEASE.TXT +index cb1d470..0e7665c 100644 +--- a/iscsiuio/RELEASE.TXT ++++ b/iscsiuio/RELEASE.TXT +@@ -1,7 +1,7 @@ + Release Notes + Broadcom uIP Linux Driver +- Version 0.7.4.3 +- 08/16/2012 ++ Version 0.7.6.1 ++ 10/15/2012 + + Broadcom Corporation + 5300 California Avenue, +@@ -11,6 +11,36 @@ + All rights reserved + + ++uIP v0.7.6.1 (Oct 15, 2012) ++======================================================= ++ Fixes ++ ----- ++ 1. Problem: Cont00065690 - Vconfig method of connecting over ++ tagged vlan with IPv6 failed ++ Cause: The new net param support changes has prevented ++ the old vconfig method from execising the IPv6 ++ acquisition engine properly ++ Change: Ensure that this old vconfig method to run the IPv6 ++ acquisition engine properly and to its entirety ++ Impact: IPv6 + VLAN using the network VLAN configuration ++ method ++ ++ 2. Problem: Cont00065768 - RHEL5.X iscsiuio segfault possible ++ if there is a specific 1024 byte size broadcast ++ packet ++ Cause: This is a corner case where the packet size is ++ exactly 1024 bytes + padding that exceeded the ++ DMA rx buffer. This has been there since day 1. ++ Change: Ensure that the packet size + padding do not ++ exceed this limit. ++ Impact: 10G only. 1G already has the guard against it. ++ ++ Enhancements ++ ------------ ++ 1. Change: Added support for 10G 57840 4x10 and 2x20 ++ Impact: 10G 57840 ++ ++ + uIP v0.7.4.3 (Aug 16, 2012) + ======================================================= + Fixes +diff --git a/iscsiuio/configure b/iscsiuio/configure +index 6ff2e68..0b2abc4 100644 +--- a/iscsiuio/configure ++++ b/iscsiuio/configure +@@ -1,6 +1,6 @@ + #! /bin/sh + # Guess values for system-dependent variables and create Makefiles. +-# Generated by GNU Autoconf 2.59 for iscsiuio 0.7.4.3. ++# Generated by GNU Autoconf 2.59 for iscsiuio 0.7.6.1. + # + # Report bugs to . + # +@@ -423,8 +423,8 @@ SHELL=${CONFIG_SHELL-/bin/sh} + # Identity of this package. + PACKAGE_NAME='iscsiuio' + PACKAGE_TARNAME='iscsiuio' +-PACKAGE_VERSION='0.7.4.3' +-PACKAGE_STRING='iscsiuio 0.7.4.3' ++PACKAGE_VERSION='0.7.6.1' ++PACKAGE_STRING='iscsiuio 0.7.6.1' + PACKAGE_BUGREPORT='eddie.wai@broadcom.com' + + # Factoring default headers for most tests. +@@ -954,7 +954,7 @@ if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +-\`configure' configures iscsiuio 0.7.4.3 to adapt to many kinds of systems. ++\`configure' configures iscsiuio 0.7.6.1 to adapt to many kinds of systems. + + Usage: $0 [OPTION]... [VAR=VALUE]... + +@@ -1020,7 +1020,7 @@ fi + + if test -n "$ac_init_help"; then + case $ac_init_help in +- short | recursive ) echo "Configuration of iscsiuio 0.7.4.3:";; ++ short | recursive ) echo "Configuration of iscsiuio 0.7.6.1:";; + esac + cat <<\_ACEOF + +@@ -1161,7 +1161,7 @@ fi + test -n "$ac_init_help" && exit 0 + if $ac_init_version; then + cat <<\_ACEOF +-iscsiuio configure 0.7.4.3 ++iscsiuio configure 0.7.6.1 + generated by GNU Autoconf 2.59 + + Copyright (C) 2003 Free Software Foundation, Inc. +@@ -1175,7 +1175,7 @@ cat >&5 <<_ACEOF + This file contains any messages produced by compilers while + running configure, to aid debugging if configure makes a mistake. + +-It was created by iscsiuio $as_me 0.7.4.3, which was ++It was created by iscsiuio $as_me 0.7.6.1, which was + generated by GNU Autoconf 2.59. Invocation command line was + + $ $0 $@ +@@ -21726,7 +21726,7 @@ _ASBOX + } >&5 + cat >&5 <<_CSEOF + +-This file was extended by iscsiuio $as_me 0.7.4.3, which was ++This file was extended by iscsiuio $as_me 0.7.6.1, which was + generated by GNU Autoconf 2.59. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES +@@ -21789,7 +21789,7 @@ _ACEOF + + cat >>$CONFIG_STATUS <<_ACEOF + ac_cs_version="\\ +-iscsiuio config.status 0.7.4.3 ++iscsiuio config.status 0.7.6.1 + configured by $0, generated by GNU Autoconf 2.59, + with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" + +diff --git a/iscsiuio/configure.ac b/iscsiuio/configure.ac +index 0b1e7f1..1045a80 100644 +--- a/iscsiuio/configure.ac ++++ b/iscsiuio/configure.ac +@@ -11,9 +11,9 @@ dnl Maintained by: Eddie Wai (eddie.wai@broadcom.com) + dnl + + PACKAGE=iscsiuio +-VERSION=0.7.4.3 ++VERSION=0.7.6.1 + +-AC_INIT(iscsiuio, 0.7.4.3, eddie.wai@broadcom.com) ++AC_INIT(iscsiuio, 0.7.6.1, eddie.wai@broadcom.com) + + AM_INIT_AUTOMAKE($PACKAGE, $VERSION) + AC_CONFIG_HEADER(config.h) +diff --git a/iscsiuio/docs/iscsiuio.8 b/iscsiuio/docs/iscsiuio.8 +index 4bf26df..d107327 100644 +--- a/iscsiuio/docs/iscsiuio.8 ++++ b/iscsiuio/docs/iscsiuio.8 +@@ -3,9 +3,9 @@ + .\" modify it under the terms of the GNU General Public License as + .\" published by the Free Software Foundation. + .\" +-.\" bnx2.4,v 0.7.4.3 ++.\" bnx2.4,v 0.7.6.1 + .\" +-.TH iscsiuio 8 "08/16/2012" "Broadcom Corporation" ++.TH iscsiuio 8 "10/09/2012" "Broadcom Corporation" + .\" + .\" NAME part + .\" +diff --git a/iscsiuio/src/uip/uip_arp.c b/iscsiuio/src/uip/uip_arp.c +index 3ef3b07..9dd02a1 100644 +--- a/iscsiuio/src/uip/uip_arp.c ++++ b/iscsiuio/src/uip/uip_arp.c +@@ -273,7 +273,6 @@ uip_arp_arpin(nic_interface_t * nic_iface, + pkt->buf_size = sizeof(*arp) + + sizeof(struct uip_vlan_eth_hdr); + } +- pkt->buf_size = sizeof(*arp) + sizeof(*eth); + } + break; + case const_htons(ARP_REPLY): +diff --git a/iscsiuio/src/unix/libs/bnx2x.c b/iscsiuio/src/unix/libs/bnx2x.c +index 5e33420..70e85c0 100644 +--- a/iscsiuio/src/unix/libs/bnx2x.c ++++ b/iscsiuio/src/unix/libs/bnx2x.c +@@ -103,6 +103,10 @@ static const char brcm_57840_MF[] = "Broadcom NetXtreme II BCM57840 MF " + "10-Gigabit"; + static const char brcm_57840_VF[] = "Broadcom NetXtreme II BCM57840 VF " + "10-Gigabit"; ++static const char brcm_57840_4_10[] = "Broadcom NetXtreme II BCM57840 4x" ++ "10-Gigabit"; ++static const char brcm_57840_2_20[] = "Broadcom NetXtreme II BCM57840 2x" ++ "20-Gigabit"; + + /******************************************************************************* + * PCI ID constants +@@ -123,6 +127,8 @@ static const char brcm_57840_VF[] = "Broadcom NetXtreme II BCM57840 VF " + #define PCI_DEVICE_ID_NX2_57840 0x168d + #define PCI_DEVICE_ID_NX2_57840_MF 0x16ab + #define PCI_DEVICE_ID_NX2_57840_VF 0x16ad ++#define PCI_DEVICE_ID_NX2_57840_4_10 0x16a1 ++#define PCI_DEVICE_ID_NX2_57840_2_20 0x16a2 + #define PCI_ANY_ID (~0) + + /* This is the table used to match PCI vendor and device ID's to the +@@ -158,6 +164,10 @@ static const struct pci_device_id bnx2x_pci_tbl[] = { + PCI_ANY_ID, PCI_ANY_ID, brcm_57840_MF}, + {PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_NX2_57840_VF, + PCI_ANY_ID, PCI_ANY_ID, brcm_57840_VF}, ++ {PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_NX2_57840_4_10, ++ PCI_ANY_ID, PCI_ANY_ID, brcm_57840_4_10}, ++ {PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_NX2_57840_2_20, ++ PCI_ANY_ID, PCI_ANY_ID, brcm_57840_2_20}, + }; + + static struct iro e1_iro[2] = { +@@ -1401,7 +1411,7 @@ static int bnx2x_read(nic_t * nic, packet_t * pkt) + union eth_rx_cqe *cqe; + __u8 cqe_fp_flags; + void *rx_pkt; +- int len, pad, cqe_size; ++ int len, pad, cqe_size, max_len; + rc = 1; + + if (bnx2x_is_ver70(bp)) { +@@ -1427,10 +1437,13 @@ static int bnx2x_read(nic_t * nic, packet_t * pkt) + + /* Doto query MTU size of physical device */ + /* Ensure len is valid */ +- if (len > pkt->max_buf_size) ++ max_len = pkt->max_buf_size < bp->rx_buffer_size ? ++ pkt->max_buf_size : bp->rx_buffer_size; ++ if (len > max_len) { + LOG_DEBUG(PFX "%s: bad BD length: %d", + nic->log_name, len); +- ++ len = max_len; ++ } + if (len > 0) { + msync(rx_pkt, len, MS_SYNC); + /* Copy the data */ +diff --git a/iscsiuio/src/unix/libs/bnx2x.h b/iscsiuio/src/unix/libs/bnx2x.h +index b758179..1f47011 100644 +--- a/iscsiuio/src/unix/libs/bnx2x.h ++++ b/iscsiuio/src/unix/libs/bnx2x.h +@@ -430,6 +430,8 @@ struct client_init_general_data { + #define CHIP_NUM_57800 0x168a + #define CHIP_NUM_57810 0x168e + #define CHIP_NUM_57840 0x168d ++#define CHIP_NUM_57840_4_10 0x16a1 ++#define CHIP_NUM_57840_2_20 0x16a2 + + #define CHIP_IS_E1(bp) (BNX2X_CHIP_NUM(bp) == CHIP_NUM_57710) + #define CHIP_IS_57711(bp) (BNX2X_CHIP_NUM(bp) == CHIP_NUM_57711) +@@ -438,7 +440,11 @@ struct client_init_general_data { + #define CHIP_IS_57712E(bp) (BNX2X_CHIP_NUM(bp) == CHIP_NUM_57712E) + #define CHIP_IS_57800(bp) (BNX2X_CHIP_NUM(bp) == CHIP_NUM_57800) + #define CHIP_IS_57810(bp) (BNX2X_CHIP_NUM(bp) == CHIP_NUM_57810) +-#define CHIP_IS_57840(bp) (BNX2X_CHIP_NUM(bp) == CHIP_NUM_57840) ++#define CHIP_IS_57840_4_10(bp) (BNX2X_CHIP_NUM(bp) == CHIP_NUM_57840_4_10) ++#define CHIP_IS_57840_2_20(bp) (BNX2X_CHIP_NUM(bp) == CHIP_NUM_57840_2_20) ++#define CHIP_IS_57840(bp) (BNX2X_CHIP_NUM(bp) == CHIP_NUM_57840 || \ ++ CHIP_IS_57840_4_10(bp) || \ ++ CHIP_IS_57840_2_20(bp)) + #define CHIP_IS_E1H(bp) (CHIP_IS_57711(bp) || \ + CHIP_IS_57711E(bp)) + #define CHIP_IS_E2(bp) (CHIP_IS_57712(bp) || \ +diff --git a/iscsiuio/src/unix/nic.c b/iscsiuio/src/unix/nic.c +index 0b3c538..72afff0 100644 +--- a/iscsiuio/src/unix/nic.c ++++ b/iscsiuio/src/unix/nic.c +@@ -460,6 +460,7 @@ int nic_remove(nic_t * nic) + rc = stat(nic->uio_device_name, &file_stat); + if ((rc == 0) && (nic->ops)) + nic->ops->close(nic, 0); ++ pthread_mutex_unlock(&nic->nic_mutex); + + nic->state = NIC_EXIT; + +@@ -910,7 +911,7 @@ int do_timers_per_nic_iface(nic_t *nic, nic_interface_t *nic_iface, + if (pkt == NULL) + return -EIO; + +- if (nic_iface->ustack.ip_config == AF_INET) { ++ if (nic_iface->protocol == AF_INET) { + for (i = 0; i < UIP_UDP_CONNS; i++) { + prepare_ustack(nic, nic_iface, ustack, pkt); + +diff --git a/iscsiuio/src/unix/nic_nl.c b/iscsiuio/src/unix/nic_nl.c +index 34e2062..8afd9ae 100644 +--- a/iscsiuio/src/unix/nic_nl.c ++++ b/iscsiuio/src/unix/nic_nl.c +@@ -408,7 +408,7 @@ static int ctldev_handle(char *data, nic_t *nic) + persist_all_nic_iface(nic); + + nic_iface = vlan_iface; +- ++ nic_iface->flags |= NIC_IFACE_ACQUIRE; + pthread_mutex_unlock(&nic->nic_mutex); + + /* nic_disable but not going down */ +-- +1.7.7.4 + diff --git a/iscsi-initiator-utils.spec b/iscsi-initiator-utils.spec index 6d20c9f..60353cb 100644 --- a/iscsi-initiator-utils.spec +++ b/iscsi-initiator-utils.spec @@ -3,7 +3,7 @@ Summary: iSCSI daemon and utility programs Name: iscsi-initiator-utils Version: 6.2.0.873 -Release: 1%{?dist} +Release: 2%{?dist} Source0: http://people.redhat.com/mchristi/iscsi/rhel6.0/source/open-iscsi-2.0-872-rc4-bnx2i.tar.gz Source1: iscsid.init Source2: iscsidevs.init @@ -47,6 +47,8 @@ Patch15: iscsi-initiator-utils-Prep-for-open-iscsi-2.0.873-release.patch Patch16: iscsi-initiator-utils-iscsid-fix-iscsid-segfault-during-qla4xxx-login.patch # upstream f0a8c95426d21413d9980d31740e193208e3280e Patch17: iscsi-initiator-utils-ISCSISTART-Bring-up-the-corresponding-network-interf.patch +# sync brcm to 0.7.6.1 +Patch18: iscsi-initiator-utils-sync-uio-0.7.6.1.patch # add rhel version info to iscsi tools Patch90: iscsi-initiator-utils-add-rh-ver.patch @@ -94,6 +96,7 @@ developing applications that use %{name}. %patch15 -p1 -b .sync-2.0.873 %patch16 -p1 -b .segfault-qla4xxx-login %patch17 -p1 -b .boot-netif-up +%patch18 -p1 -b .sync-uio-0.7.6.1 %patch90 -p1 -b .add-rh-ver %build @@ -220,6 +223,9 @@ fi %{_includedir}/libiscsi.h %changelog +* Mon Oct 22 2012 Chris Leech - 6.2.0.873-2 +- 868305 sync iscsiuio to 0.7.6.1 + * Thu Oct 11 2012 Chris Leech - 6.2.0.873-1 - Sync with upstream 2.0.873 - 854776 Bring up network interface for iSCSI boot with bnx2i