[iscsi-initiator-utils: 96/109] Resolves: #868305

Chris Leech cleech at fedoraproject.org
Tue Dec 10 21:27:22 UTC 2013


commit 9c3f00f532a91aa8d536a403196f919e93d7d9c2
Author: Chris Leech <cleech at redhat.com>
Date:   Mon Oct 22 11:51:39 2012 -0700

    Resolves: #868305

 iscsi-initiator-utils-add-rh-ver.patch       |    2 +-
 iscsi-initiator-utils-sync-uio-0.7.6.1.patch |  327 ++++++++++++++++++++++++++
 iscsi-initiator-utils.spec                   |    8 +-
 3 files changed, 335 insertions(+), 2 deletions(-)
---
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 <eddie.wai at broadcom.com>
+Date: Mon, 15 Oct 2012 14:47:54 -0700
+Subject: [PATCH] ISCSIUIO: Updated to 0.7.6.1
+
+Signed-off-by: Eddie Wai <eddie.wai at broadcom.com>
+---
+ 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 <eddie.wai at broadcom.com>.
+ #
+@@ -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 at 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 at broadcom.com)
+ dnl
+ 
+ PACKAGE=iscsiuio
+-VERSION=0.7.4.3
++VERSION=0.7.6.1
+ 
+-AC_INIT(iscsiuio, 0.7.4.3, eddie.wai at broadcom.com)
++AC_INIT(iscsiuio, 0.7.6.1, eddie.wai at 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 <cleech at redhat.com> - 6.2.0.873-2
+- 868305 sync iscsiuio to 0.7.6.1
+
 * Thu Oct 11 2012 Chris Leech <cleech at redhat.com> - 6.2.0.873-1
 - Sync with upstream 2.0.873
 - 854776 Bring up network interface for iSCSI boot with bnx2i


More information about the scm-commits mailing list