[iscsi-initiator-utils: 63/109] Resolves: #689359

Chris Leech cleech at fedoraproject.org
Tue Dec 10 21:24:41 UTC 2013


commit 0d27aa2281761f1cc90ef979049ccecd1fd6d5cc
Author: mchristi <mchristi at redhat.com>
Date:   Sat Apr 2 10:59:16 2011 +0000

    Resolves: #689359

 iscsi-initiator-utils-be2iscsi-fix-init-r2t.patch  |   27 -
 iscsi-initiator-utils-disable-isns-for-lib.patch   |   74 --
 iscsi-initiator-utils-fix-brcm-nic-state.patch     |   31 -
 iscsi-initiator-utils-fix-dd-stop.patch            |  289 -------
 iscsi-initiator-utils-fix-iface-op-ret-val.patch   |   74 --
 iscsi-initiator-utils-fix-lib-sysfs-init.patch     |   49 --
 iscsi-initiator-utils-fix-missing-includes.patch   |   11 -
 iscsi-initiator-utils-fix-s390-compile.patch       |   10 -
 iscsi-initiator-utils-fix-uip-10G-wrap.patch       |   82 --
 iscsi-initiator-utils-fix-uip-init-race.patch      |  236 ------
 ...initiator-utils-fix-uip-rhel-version-bump.patch |   28 -
 iscsi-initiator-utils-fix-uip-vlan-support.patch   |  569 --------------
 ...r-utils-fix-zero-MaxXmitDataSegmentLength.patch |   59 --
 iscsi-initiator-utils-fixes.patch                  |   97 +++
 iscsi-initiator-utils-fw-boot.patch                |  696 -----------------
 iscsi-initiator-utils-log-info.patch               |   23 -
 ... iscsi-initiator-utils-sync-brcm-0.6.2.14.patch |  826 +++++++++++++-------
 iscsi-initiator-utils.spec                         |   17 +-
 18 files changed, 665 insertions(+), 2533 deletions(-)
---
diff --git a/iscsi-initiator-utils-fixes.patch b/iscsi-initiator-utils-fixes.patch
new file mode 100644
index 0000000..afb4fad
--- /dev/null
+++ b/iscsi-initiator-utils-fixes.patch
@@ -0,0 +1,97 @@
+diff -aurp open-iscsi-2.0-872-rc4-bnx2i/usr/io.c open-iscsi-2.0-872-rc4-bnx2i.fix/usr/io.c
+--- open-iscsi-2.0-872-rc4-bnx2i/usr/io.c	2011-04-02 01:40:02.000000000 -0500
++++ open-iscsi-2.0-872-rc4-bnx2i.fix/usr/io.c	2011-04-02 05:23:15.000000000 -0500
+@@ -296,6 +296,9 @@ static int bind_conn_to_iface(iscsi_conn
+ {
+ 	struct iscsi_session *session = conn->session;
+ 
++	if (strcmp(iface->transport_name, DEFAULT_TRANSPORT))
++		return 0;
++
+ 	memset(session->netdev, 0, IFNAMSIZ);
+ 	if (iface_is_bound_by_hwaddr(iface) &&
+ 	    net_get_netdev_from_hwaddress(iface->hwaddress, session->netdev)) {
+@@ -467,7 +470,7 @@ iscsi_io_tcp_poll(iscsi_conn_t *conn, in
+ 	}
+ 
+ 	len = sizeof(ss);
+-	if (log_level > 0 || !conn->session->netdev)
++	if (log_level > 0 || !conn->session->netdev[0])
+ 		rc = getsockname(conn->socket_fd, (struct sockaddr *)&ss, &len);
+ 	if (log_level > 0 && rc >= 0) {
+ 		getnameinfo((struct sockaddr *) &conn->saddr,
+diff -aurp open-iscsi-2.0-872-rc4-bnx2i/usr/iscsi_err.c open-iscsi-2.0-872-rc4-bnx2i.fix/usr/iscsi_err.c
+--- open-iscsi-2.0-872-rc4-bnx2i/usr/iscsi_err.c	2011-04-02 01:40:02.000000000 -0500
++++ open-iscsi-2.0-872-rc4-bnx2i.fix/usr/iscsi_err.c	2011-04-02 05:22:51.000000000 -0500
+@@ -44,7 +44,7 @@ static char *iscsi_err_msgs[] = {
+ 	/* 19 */ "encountered non-retryable iSCSI login failure",
+ 	/* 20 */ "could not connect to iscsid",
+ 	/* 21 */ "no objects found",
+-	/* 23 */ "sysfs lookup failure",
++	/* 22 */ "sysfs lookup failure",
+ 	/* 23 */ "host not found",
+ 	/* 24 */ "iSCSI login failed due to authorization failure",
+ 	/* 25 */ "iSNS query failed",
+diff -aurp open-iscsi-2.0-872-rc4-bnx2i/usr/netlink.c open-iscsi-2.0-872-rc4-bnx2i.fix/usr/netlink.c
+--- open-iscsi-2.0-872-rc4-bnx2i/usr/netlink.c	2011-04-02 01:40:02.000000000 -0500
++++ open-iscsi-2.0-872-rc4-bnx2i.fix/usr/netlink.c	2011-04-02 05:23:10.000000000 -0500
+@@ -53,15 +53,15 @@ static struct iscsi_ipc_ev_clbk *ipc_ev_
+ 
+ static int ctldev_handle(void);
+ 
+-#define NLM_BUF_DEFAULT_MAX \
+-	(NLMSG_SPACE(ISCSI_DEF_MAX_RECV_SEG_LEN + \
+-			 sizeof(struct iscsi_hdr)))
++#define NLM_BUF_DEFAULT_MAX (NLMSG_SPACE(ISCSI_DEF_MAX_RECV_SEG_LEN +	\
++					sizeof(struct iscsi_uevent) +	\
++					sizeof(struct iscsi_hdr)))
++
++#define PDU_SENDBUF_DEFAULT_MAX	(ISCSI_DEF_MAX_RECV_SEG_LEN +		\
++					sizeof(struct iscsi_uevent) +	\
++					sizeof(struct iscsi_hdr))
+ 
+-#define PDU_SENDBUF_DEFAULT_MAX \
+-	(ISCSI_DEF_MAX_RECV_SEG_LEN + sizeof(struct iscsi_hdr))
+-
+-#define NLM_SETPARAM_DEFAULT_MAX \
+-	(NI_MAXHOST + 1 + sizeof(struct iscsi_uevent))
++#define NLM_SETPARAM_DEFAULT_MAX (NI_MAXHOST + 1 + sizeof(struct iscsi_uevent))
+ 
+ static int
+ kread(char *data, int count)
+@@ -108,6 +108,12 @@ nlpayload_read(int ctrl_fd, char *data, 
+ 
+ 	iov.iov_base = nlm_recvbuf;
+ 	iov.iov_len = NLMSG_SPACE(count);
++
++	if (iov.iov_len > NLM_BUF_DEFAULT_MAX) {
++		log_error("Cannot read %lu bytes. nlm_recvbuf too small.",
++			  iov.iov_len);
++		return -1;
++	}
+ 	memset(iov.iov_base, 0, iov.iov_len);
+ 
+ 	memset(&msg, 0, sizeof(msg));
+@@ -517,6 +523,7 @@ ksend_pdu_begin(uint64_t transport_handl
+ 			int hdr_size, int data_size)
+ {
+ 	struct iscsi_uevent *ev;
++	int total_xmitlen = sizeof(*ev) + hdr_size + data_size;
+ 
+ 	log_debug(7, "in %s", __FUNCTION__);
+ 
+@@ -525,8 +532,13 @@ ksend_pdu_begin(uint64_t transport_handl
+ 		exit(-EIO);
+ 	}
+ 
++	if (total_xmitlen > PDU_SENDBUF_DEFAULT_MAX) {
++		log_error("BUG: Cannot send %d bytes.", total_xmitlen);
++		exit(-EINVAL);
++	}
++
+ 	xmitbuf = pdu_sendbuf;
+-	memset(xmitbuf, 0, sizeof(*ev) + hdr_size + data_size);
++	memset(xmitbuf, 0, total_xmitlen);
+ 	xmitlen = sizeof(*ev);
+ 	ev = xmitbuf;
+ 	memset(ev, 0, sizeof(*ev));
diff --git a/iscsi-initiator-utils-sync-brcm-0.6.2.13.patch b/iscsi-initiator-utils-sync-brcm-0.6.2.14.patch
similarity index 99%
rename from iscsi-initiator-utils-sync-brcm-0.6.2.13.patch
rename to iscsi-initiator-utils-sync-brcm-0.6.2.14.patch
index d30dad7..d746eea 100644
--- a/iscsi-initiator-utils-sync-brcm-0.6.2.13.patch
+++ b/iscsi-initiator-utils-sync-brcm-0.6.2.14.patch
@@ -1,6 +1,6 @@
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/aclocal.m4 open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/aclocal.m4
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/aclocal.m4	2011-01-29 23:47:49.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/aclocal.m4	2010-12-16 15:51:26.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/aclocal.m4 open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/aclocal.m4
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/aclocal.m4	2010-05-20 20:16:05.000000000 -0500
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/aclocal.m4	2011-04-02 05:32:57.000000000 -0500
 @@ -1,7 +1,7 @@
 -# generated automatically by aclocal 1.10.2 -*- Autoconf -*-
 +# generated automatically by aclocal 1.9.6 -*- Autoconf -*-
@@ -13274,9 +13274,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/aclocal.m4 open-isc
  # Check how to create a tarball.                            -*- Autoconf -*-
  
  # Copyright (C) 2004, 2005  Free Software Foundation, Inc.
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/autom4te.cache/output.0 open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/autom4te.cache/output.0
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/autom4te.cache/output.0	1969-12-31 18:00:00.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/autom4te.cache/output.0	2011-01-04 17:19:38.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/autom4te.cache/output.0 open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/autom4te.cache/output.0
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/autom4te.cache/output.0	1969-12-31 18:00:00.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/autom4te.cache/output.0	2011-04-02 05:32:57.000000000 -0500
 @@ -0,0 +1,22786 @@
 +@%:@! /bin/sh
 +@%:@ Guess values for system-dependent variables and create Makefiles.
@@ -36064,9 +36064,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/autom4te.cache/outp
 +  $ac_cs_success || { (exit 1); exit 1; }
 +fi
 +
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/autom4te.cache/output.1 open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/autom4te.cache/output.1
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/autom4te.cache/output.1	1969-12-31 18:00:00.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/autom4te.cache/output.1	2010-12-16 15:51:25.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/autom4te.cache/output.1 open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/autom4te.cache/output.1
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/autom4te.cache/output.1	1969-12-31 18:00:00.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/autom4te.cache/output.1	2011-04-02 05:32:57.000000000 -0500
 @@ -0,0 +1,22798 @@
 +@%:@! /bin/sh
 +@%:@ Guess values for system-dependent variables and create Makefiles.
@@ -58866,9 +58866,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/autom4te.cache/outp
 +  $ac_cs_success || { (exit 1); exit 1; }
 +fi
 +
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/autom4te.cache/requests open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/autom4te.cache/requests
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/autom4te.cache/requests	1969-12-31 18:00:00.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/autom4te.cache/requests	2011-01-04 17:19:38.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/autom4te.cache/requests open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/autom4te.cache/requests
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/autom4te.cache/requests	1969-12-31 18:00:00.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/autom4te.cache/requests	2011-04-02 05:32:57.000000000 -0500
 @@ -0,0 +1,351 @@
 +# This file was generated.
 +# It contains the lists of macros which have been traced.
@@ -59221,9 +59221,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/autom4te.cache/requ
 +                    ], 'Autom4te::Request' )
 +           );
 +
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/autom4te.cache/traces.0 open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/autom4te.cache/traces.0
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/autom4te.cache/traces.0	1969-12-31 18:00:00.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/autom4te.cache/traces.0	2011-01-04 17:19:38.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/autom4te.cache/traces.0 open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/autom4te.cache/traces.0
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/autom4te.cache/traces.0	1969-12-31 18:00:00.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/autom4te.cache/traces.0	2011-04-02 05:32:57.000000000 -0500
 @@ -0,0 +1,495 @@
 +m4trace:configure.ac:15: -1- AC_INIT([brcm_iscsi], [0.6.2.13], [benli at broadcom.com])
 +m4trace:configure.ac:15: -1- m4_pattern_forbid([^_?A[CHUM]_])
@@ -59720,9 +59720,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/autom4te.cache/trac
 +You should run autoupdate.], [])
 +m4trace:configure.ac:91: -1- AC_SUBST([LIB@&t at OBJS], [$ac_libobjs])
 +m4trace:configure.ac:91: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs])
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/autom4te.cache/traces.1 open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/autom4te.cache/traces.1
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/autom4te.cache/traces.1	1969-12-31 18:00:00.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/autom4te.cache/traces.1	2010-12-16 15:51:25.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/autom4te.cache/traces.1 open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/autom4te.cache/traces.1
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/autom4te.cache/traces.1	1969-12-31 18:00:00.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/autom4te.cache/traces.1	2011-04-02 05:32:57.000000000 -0500
 @@ -0,0 +1,9283 @@
 +m4trace:/usr/share/aclocal/libtool.m4:55: -1- AC_DEFUN([AC_PROG_LIBTOOL], [AC_REQUIRE([_AC_PROG_LIBTOOL])dnl
 +dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX
@@ -69007,9 +69007,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/autom4te.cache/trac
 +m4trace:configure.ac:91: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs])
 +m4trace:configure.ac:91: -1- _AC_AM_CONFIG_HEADER_HOOK([$ac_file])
 +m4trace:configure.ac:91: -1- _AM_OUTPUT_DEPENDENCY_COMMANDS
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/config.h open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/config.h
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/config.h	1969-12-31 18:00:00.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/config.h	2010-12-16 15:51:41.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/config.h open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/config.h
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/config.h	1969-12-31 18:00:00.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/config.h	2011-04-02 05:32:57.000000000 -0500
 @@ -0,0 +1,112 @@
 +/* config.h.  Generated by configure.  */
 +/* config.h.in.  Generated from configure.ac by autoheader.  */
@@ -69123,9 +69123,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/config.h open-iscsi
 +
 +/* Define to `unsigned' if <sys/types.h> does not define. */
 +/* #undef size_t */
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/config.h.in open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/config.h.in
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/config.h.in	2011-01-29 23:47:49.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/config.h.in	2010-12-16 19:34:46.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/config.h.in open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/config.h.in
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/config.h.in	2010-05-20 20:16:05.000000000 -0500
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/config.h.in	2011-04-02 05:32:57.000000000 -0500
 @@ -1,8 +1,5 @@
  /* config.h.in.  Generated from configure.ac by autoheader.  */
  
@@ -69233,9 +69233,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/config.h.in open-is
 -/* Define to `unsigned int' if <sys/types.h> does not define. */
 +/* Define to `unsigned' if <sys/types.h> does not define. */
  #undef size_t
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/config.log open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/config.log
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/config.log	1969-12-31 18:00:00.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/config.log	2010-12-16 19:34:46.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/config.log open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/config.log
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/config.log	1969-12-31 18:00:00.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/config.log	2011-04-02 05:32:57.000000000 -0500
 @@ -0,0 +1,1493 @@
 +This file contains any messages produced by compilers while
 +running configure, to aid debugging if configure makes a mistake.
@@ -70730,9 +70730,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/config.log open-isc
 +
 +config.status:832: creating config.h
 +config.status:964: config.h is unchanged
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/config.status open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/config.status
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/config.status	1969-12-31 18:00:00.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/config.status	2010-12-16 19:34:44.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/config.status open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/config.status
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/config.status	1969-12-31 18:00:00.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/config.status	2011-04-02 05:32:57.000000000 -0500
 @@ -0,0 +1,1236 @@
 +#! /bin/sh
 +# Generated by configure.
@@ -71970,9 +71970,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/config.status open-
 +done
 +
 +{ (exit 0); exit 0; }
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/configure open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/configure
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/configure	2011-01-29 23:47:49.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/configure	2011-01-04 17:19:38.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/configure open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/configure
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/configure	2010-05-20 20:16:05.000000000 -0500
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/configure	2011-04-02 05:32:57.000000000 -0500
 @@ -1,84 +1,27 @@
  #! /bin/sh
  # Guess values for system-dependent variables and create Makefiles.
@@ -105060,9 +105060,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/configure open-iscs
 -$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
 -fi
  
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/configure.ac open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/configure.ac
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/configure.ac	2011-01-29 23:47:49.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/configure.ac	2011-01-04 17:18:35.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/configure.ac open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/configure.ac
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/configure.ac	2010-05-20 20:16:05.000000000 -0500
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/configure.ac	2011-04-02 05:33:16.000000000 -0500
 @@ -1,6 +1,6 @@
  dnl brcm_iscsiuio uIP user space stack configure.ac file
  dnl
@@ -105076,10 +105076,10 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/configure.ac open-i
  
  PACKAGE=brcm_iscsiuio
 -VERSION=0.5.15
-+VERSION=0.6.2.13
++VERSION=0.6.2.14
  
 -AC_INIT(brcm_iscsi, 0.5.15, benli at broadcom.com)
-+AC_INIT(brcm_iscsi, 0.6.2.13, benli at broadcom.com)
++AC_INIT(brcm_iscsi, 0.6.2.14, benli at broadcom.com)
  
  AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
  AC_CONFIG_HEADER(config.h)
@@ -105106,9 +105106,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/configure.ac open-i
  AC_CONFIG_COMMANDS([default],[[ echo 'char *build_date ="'`date`'";' > src/unix/build_date.c  && echo 'char *build_date; '> src/unix/build_date.h]],[[]])
  
  AC_PREFIX_DEFAULT()
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/docs/brcm_iscsiuio.8 open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/docs/brcm_iscsiuio.8
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/docs/brcm_iscsiuio.8	2011-01-29 23:47:49.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/docs/brcm_iscsiuio.8	2011-01-04 17:18:22.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/docs/brcm_iscsiuio.8 open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/docs/brcm_iscsiuio.8
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/docs/brcm_iscsiuio.8	2010-05-20 20:16:05.000000000 -0500
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/docs/brcm_iscsiuio.8	2011-04-02 05:33:16.000000000 -0500
 @@ -1,11 +1,11 @@
 -.\" Copyright (c) 2010 Broadcom Corporation
 +.\" Copyright (c) 2010-2011 Broadcom Corporation
@@ -105117,16 +105117,16 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/docs/brcm_iscsiuio.
  .\" published by the Free Software Foundation.
  .\"
 -.\" bnx2.4,v 0.5.15
-+.\" bnx2.4,v 0.6.2.13
++.\" bnx2.4,v 0.6.2.14
  .\"
 -.TH brcm_iscsiuio 8 "05/20/2010" "Broadcom Corporation"
-+.TH brcm_iscsiuio 8 "01/04/2011" "Broadcom Corporation"
++.TH brcm_iscsiuio 8 "03/21/2011" "Broadcom Corporation"
  .\"
  .\" NAME part
  .\"
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/include/config.h open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/include/config.h
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/include/config.h	2011-01-29 23:47:49.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/include/config.h	2010-12-16 11:56:16.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/include/config.h open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/include/config.h
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/include/config.h	2010-05-20 20:16:05.000000000 -0500
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/include/config.h	2011-04-02 05:32:57.000000000 -0500
 @@ -21,9 +21,6 @@
  #define CONFIG_H
  
@@ -105360,9 +105360,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/include/config.h op
 +#endif /* ISCSID_VERSION */
  
  #endif /* CONFIG_H */
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/libtool open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/libtool
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/libtool	1969-12-31 18:00:00.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/libtool	2010-12-16 19:34:43.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/libtool open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/libtool
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/libtool	1969-12-31 18:00:00.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/libtool	2011-04-02 05:32:57.000000000 -0500
 @@ -0,0 +1,7885 @@
 +#! /bin/sh
 +
@@ -113249,9 +113249,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/libtool open-iscsi-
 +
 +# ### END LIBTOOL TAG CONFIG: F77
 +
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/ltmain.sh open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/ltmain.sh
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/ltmain.sh	2011-01-29 23:47:49.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/ltmain.sh	2010-12-16 11:56:16.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/ltmain.sh open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/ltmain.sh
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/ltmain.sh	2010-05-20 20:16:05.000000000 -0500
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/ltmain.sh	2011-04-02 05:32:57.000000000 -0500
 @@ -1,83 +1,52 @@
 -# Generated from ltmain.m4sh.
 -
@@ -127410,9 +127410,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/ltmain.sh open-iscs
  # End:
 -# vi:sw=2
 -
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/Makefile open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/Makefile
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/Makefile	1969-12-31 18:00:00.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/Makefile	2010-12-16 19:34:44.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/Makefile open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/Makefile
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/Makefile	1969-12-31 18:00:00.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/Makefile	2011-04-02 05:32:57.000000000 -0500
 @@ -0,0 +1,618 @@
 +# Makefile.in generated by automake 1.9.6 from Makefile.am.
 +# Makefile.  Generated from Makefile.in by configure.
@@ -128032,9 +128032,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/Makefile open-iscsi
 +# Tell versions [3.59,3.63) of GNU make to not export all variables.
 +# Otherwise a system limit (for SysV at least) may be exceeded.
 +.NOEXPORT:
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/Makefile.in open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/Makefile.in
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/Makefile.in	2011-01-29 23:47:49.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/Makefile.in	2010-12-16 15:51:29.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/Makefile.in open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/Makefile.in
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/Makefile.in	2010-05-20 20:16:05.000000000 -0500
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/Makefile.in	2011-04-02 05:32:57.000000000 -0500
 @@ -1,8 +1,8 @@
 -# Makefile.in generated by automake 1.10.2 from Makefile.am.
 +# Makefile.in generated by automake 1.9.6 from Makefile.am.
@@ -128449,15 +128449,15 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/Makefile.in open-is
  
  
  build_date:
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/README open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/README
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/README	2011-01-29 23:47:49.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/README	2011-01-04 17:19:14.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/README open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/README
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/README	2010-05-20 20:16:05.000000000 -0500
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/README	2011-04-02 05:33:16.000000000 -0500
 @@ -1,6 +1,6 @@
  Broadcom iSCSI Userspace Tools
 -Version 0.5.15
 -May 20, 2010
-+Version 0.6.2.13
-+January 04, 2011
++Version 0.6.2.14
++March 21, 2011
  ------------------------------------------------------
  
  This tools is to be used in conjunction with the Broadcom NetXtreme II Linux
@@ -128548,16 +128548,16 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/README open-iscsi-2
 +packet activity which on a busy network will quickly fill the logs.
 +
 +Note:  If the bnx2i and cnic drivers are unloaed,  Then uIP will also need to be restarted so that it can determine the drvier version.
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/RELEASE.TXT open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/RELEASE.TXT
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/RELEASE.TXT	2011-01-29 23:47:49.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/RELEASE.TXT	2011-01-04 17:16:19.000000000 -0600
-@@ -1,15 +1,777 @@
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/RELEASE.TXT open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/RELEASE.TXT
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/RELEASE.TXT	2010-05-20 20:16:05.000000000 -0500
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/RELEASE.TXT	2011-04-02 05:33:16.000000000 -0500
+@@ -1,15 +1,790 @@
                                Release Notes
                          Broadcom uIP Linux Driver
 -                              Version 0.5.15
 -                                05/20/2010
-+                            Version 0.6.2.13
-+                               01/04/2011
++                            Version 0.6.2.14
++                               03/21/2011
  
                            Broadcom Corporation
                           5300 California Avenue,
@@ -128568,6 +128568,19 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/RELEASE.TXT open-is
                             All rights reserved
  
 +
++uIP v0.6.2.14 (Mar. 21, 2011)
++=======================================================
++   Fixes
++   -----
++   1. Problem: Cont00053870 - Unable to login to iSCSI target via offload
++               through a Nexus 5020 switch with DCBx enabled
++      Cause:   Double VLAN tagging was observed due to DCBx enabled.
++               The chip actually adds a VLAN tag if the txbd does not have
++               VLAN tag enabled under the DCBx environment for PRI setting.
++               Since uIP does not make use of hw assisted VLAN tagging,
++               2 VLAN tag was observed in the data stream.
++      Change:  Enabled hw assisted VLAN tagging in uIP for both 1g and 10g.
++
 +uIP v0.6.2.13 (Jan. 04, 2011)
 +=======================================================
 +   Fixes
@@ -129332,9 +129345,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/RELEASE.TXT open-is
  uIP v0.5.15 (May 20, 2010)
  =======================================================
  
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/apps/brcm-iscsi/Makefile open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/apps/brcm-iscsi/Makefile
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/apps/brcm-iscsi/Makefile	1969-12-31 18:00:00.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/apps/brcm-iscsi/Makefile	2010-12-16 19:34:45.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/apps/brcm-iscsi/Makefile open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/apps/brcm-iscsi/Makefile
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/apps/brcm-iscsi/Makefile	1969-12-31 18:00:00.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/apps/brcm-iscsi/Makefile	2011-04-02 05:32:57.000000000 -0500
 @@ -0,0 +1,446 @@
 +# Makefile.in generated by automake 1.9.6 from Makefile.am.
 +# src/apps/brcm-iscsi/Makefile.  Generated from Makefile.in by configure.
@@ -129782,9 +129795,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/apps/brcm-iscsi
 +# Tell versions [3.59,3.63) of GNU make to not export all variables.
 +# Otherwise a system limit (for SysV at least) may be exceeded.
 +.NOEXPORT:
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/apps/brcm-iscsi/Makefile.in open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/apps/brcm-iscsi/Makefile.in
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/apps/brcm-iscsi/Makefile.in	2011-01-29 23:47:49.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/apps/brcm-iscsi/Makefile.in	2010-12-16 15:51:28.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/apps/brcm-iscsi/Makefile.in open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/apps/brcm-iscsi/Makefile.in
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/apps/brcm-iscsi/Makefile.in	2010-05-20 20:16:05.000000000 -0500
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/apps/brcm-iscsi/Makefile.in	2011-04-02 05:32:57.000000000 -0500
 @@ -1,8 +1,8 @@
 -# Makefile.in generated by automake 1.10.2 from Makefile.am.
 +# Makefile.in generated by automake 1.9.6 from Makefile.am.
@@ -130158,9 +130171,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/apps/brcm-iscsi
  
  # Tell versions [3.59,3.63) of GNU make to not export all variables.
  # Otherwise a system limit (for SysV at least) may be exceeded.
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/apps/dhcpc/dhcpc.c open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/apps/dhcpc/dhcpc.c
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/apps/dhcpc/dhcpc.c	2011-01-29 23:47:49.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/apps/dhcpc/dhcpc.c	2010-12-16 11:56:16.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/apps/dhcpc/dhcpc.c open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/apps/dhcpc/dhcpc.c
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/apps/dhcpc/dhcpc.c	2010-05-20 20:16:05.000000000 -0500
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/apps/dhcpc/dhcpc.c	2011-04-02 05:32:57.000000000 -0500
 @@ -282,7 +282,9 @@ static PT_THREAD(handle_dhcp(struct uip_
  		}
  
@@ -130172,9 +130185,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/apps/dhcpc/dhcp
  		}
  	} while (s->state != STATE_OFFER_RECEIVED);
  
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/apps/dhcpc/Makefile open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/apps/dhcpc/Makefile
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/apps/dhcpc/Makefile	1969-12-31 18:00:00.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/apps/dhcpc/Makefile	2010-12-16 19:34:45.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/apps/dhcpc/Makefile open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/apps/dhcpc/Makefile
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/apps/dhcpc/Makefile	1969-12-31 18:00:00.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/apps/dhcpc/Makefile	2011-04-02 05:32:57.000000000 -0500
 @@ -0,0 +1,445 @@
 +# Makefile.in generated by automake 1.9.6 from Makefile.am.
 +# src/apps/dhcpc/Makefile.  Generated from Makefile.in by configure.
@@ -130621,9 +130634,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/apps/dhcpc/Make
 +# Tell versions [3.59,3.63) of GNU make to not export all variables.
 +# Otherwise a system limit (for SysV at least) may be exceeded.
 +.NOEXPORT:
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/apps/dhcpc/Makefile.in open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/apps/dhcpc/Makefile.in
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/apps/dhcpc/Makefile.in	2011-01-29 23:47:49.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/apps/dhcpc/Makefile.in	2010-12-16 15:51:28.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/apps/dhcpc/Makefile.in open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/apps/dhcpc/Makefile.in
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/apps/dhcpc/Makefile.in	2010-05-20 20:16:05.000000000 -0500
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/apps/dhcpc/Makefile.in	2011-04-02 05:32:57.000000000 -0500
 @@ -1,8 +1,8 @@
 -# Makefile.in generated by automake 1.10.2 from Makefile.am.
 +# Makefile.in generated by automake 1.9.6 from Makefile.am.
@@ -130997,9 +131010,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/apps/dhcpc/Make
  
  # Tell versions [3.59,3.63) of GNU make to not export all variables.
  # Otherwise a system limit (for SysV at least) may be exceeded.
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/apps/Makefile open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/apps/Makefile
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/apps/Makefile	1969-12-31 18:00:00.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/apps/Makefile	2010-12-16 19:34:44.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/apps/Makefile open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/apps/Makefile
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/apps/Makefile	1969-12-31 18:00:00.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/apps/Makefile	2011-04-02 05:32:57.000000000 -0500
 @@ -0,0 +1,471 @@
 +# Makefile.in generated by automake 1.9.6 from Makefile.am.
 +# src/apps/Makefile.  Generated from Makefile.in by configure.
@@ -131472,9 +131485,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/apps/Makefile o
 +# Tell versions [3.59,3.63) of GNU make to not export all variables.
 +# Otherwise a system limit (for SysV at least) may be exceeded.
 +.NOEXPORT:
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/apps/Makefile.in open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/apps/Makefile.in
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/apps/Makefile.in	2011-01-29 23:47:49.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/apps/Makefile.in	2010-12-16 15:51:28.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/apps/Makefile.in open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/apps/Makefile.in
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/apps/Makefile.in	2010-05-20 20:16:05.000000000 -0500
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/apps/Makefile.in	2011-04-02 05:32:57.000000000 -0500
 @@ -1,8 +1,8 @@
 -# Makefile.in generated by automake 1.10.2 from Makefile.am.
 +# Makefile.in generated by automake 1.9.6 from Makefile.am.
@@ -131833,9 +131846,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/apps/Makefile.i
  
  # Tell versions [3.59,3.63) of GNU make to not export all variables.
  # Otherwise a system limit (for SysV at least) may be exceeded.
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/Makefile open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/Makefile
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/Makefile	1969-12-31 18:00:00.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/Makefile	2010-12-16 19:34:44.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/Makefile open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/Makefile
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/Makefile	1969-12-31 18:00:00.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/Makefile	2011-04-02 05:32:57.000000000 -0500
 @@ -0,0 +1,471 @@
 +# Makefile.in generated by automake 1.9.6 from Makefile.am.
 +# src/Makefile.  Generated from Makefile.in by configure.
@@ -132308,9 +132321,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/Makefile open-i
 +# Tell versions [3.59,3.63) of GNU make to not export all variables.
 +# Otherwise a system limit (for SysV at least) may be exceeded.
 +.NOEXPORT:
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/Makefile.in open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/Makefile.in
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/Makefile.in	2011-01-29 23:47:49.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/Makefile.in	2010-12-16 15:51:28.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/Makefile.in open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/Makefile.in
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/Makefile.in	2010-05-20 20:16:05.000000000 -0500
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/Makefile.in	2011-04-02 05:32:57.000000000 -0500
 @@ -1,8 +1,8 @@
 -# Makefile.in generated by automake 1.10.2 from Makefile.am.
 +# Makefile.in generated by automake 1.9.6 from Makefile.am.
@@ -132669,9 +132682,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/Makefile.in ope
  
  # Tell versions [3.59,3.63) of GNU make to not export all variables.
  # Otherwise a system limit (for SysV at least) may be exceeded.
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/uip/Makefile open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/uip/Makefile
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/uip/Makefile	1969-12-31 18:00:00.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/uip/Makefile	2010-12-16 19:34:45.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/uip/Makefile open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/uip/Makefile
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/uip/Makefile	1969-12-31 18:00:00.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/uip/Makefile	2011-04-02 05:32:57.000000000 -0500
 @@ -0,0 +1,527 @@
 +# Makefile.in generated by automake 1.9.6 from Makefile.am.
 +# src/uip/Makefile.  Generated from Makefile.in by configure.
@@ -133200,9 +133213,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/uip/Makefile op
 +# Tell versions [3.59,3.63) of GNU make to not export all variables.
 +# Otherwise a system limit (for SysV at least) may be exceeded.
 +.NOEXPORT:
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/uip/Makefile.in open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/uip/Makefile.in
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/uip/Makefile.in	2011-01-29 23:47:49.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/uip/Makefile.in	2010-12-16 15:51:28.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/uip/Makefile.in open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/uip/Makefile.in
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/uip/Makefile.in	2010-05-20 20:16:05.000000000 -0500
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/uip/Makefile.in	2011-04-02 05:32:57.000000000 -0500
 @@ -1,8 +1,8 @@
 -# Makefile.in generated by automake 1.10.2 from Makefile.am.
 +# Makefile.in generated by automake 1.9.6 from Makefile.am.
@@ -133666,9 +133679,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/uip/Makefile.in
  
  # Tell versions [3.59,3.63) of GNU make to not export all variables.
  # Otherwise a system limit (for SysV at least) may be exceeded.
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/uip/uip_arp.c open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/uip/uip_arp.c
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/uip/uip_arp.c	2011-01-29 23:47:49.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/uip/uip_arp.c	2010-12-16 11:56:16.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/uip/uip_arp.c open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/uip/uip_arp.c
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/uip/uip_arp.c	2010-05-20 20:16:05.000000000 -0500
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/uip/uip_arp.c	2011-04-02 05:32:57.000000000 -0500
 @@ -232,7 +232,8 @@ uip_arp_ipin(struct uip_stack *ustack, p
  }
  
@@ -133691,9 +133704,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/uip/uip_arp.c o
        pkt->buf_size = sizeof(*arp) +  sizeof(*eth);
      }
      break;
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/uip/uip_arp.h open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/uip/uip_arp.h
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/uip/uip_arp.h	2011-01-29 23:47:49.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/uip/uip_arp.h	2010-12-16 11:56:16.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/uip/uip_arp.h open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/uip/uip_arp.h
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/uip/uip_arp.h	2010-05-20 20:16:05.000000000 -0500
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/uip/uip_arp.h	2011-04-02 05:32:57.000000000 -0500
 @@ -130,7 +130,8 @@ void uip_arp_ipin(struct uip_stack *usta
     uip_arp_arpin() function returns, the contents of the uip_buf
     buffer should be sent out on the Ethernet if the uip_len variable
@@ -133704,9 +133717,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/uip/uip_arp.h o
  
  typedef enum {
  	ARP_SENT 		= 1,
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/uip/uip.c open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/uip/uip.c
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/uip/uip.c	2011-01-29 23:47:49.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/uip/uip.c	2010-12-16 11:56:16.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/uip/uip.c open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/uip/uip.c
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/uip/uip.c	2010-05-20 20:16:05.000000000 -0500
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/uip/uip.c	2011-04-02 05:32:57.000000000 -0500
 @@ -1,6 +1,7 @@
  #include <netinet/in.h>
  #include <netinet/ip6.h>
@@ -134039,9 +134052,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/uip/uip.c open-
      ustack->uip_flags = UIP_ABORT;
      UIP_APPCALL(ustack);
      goto drop;
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/uip/uip.h open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/uip/uip.h
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/uip/uip.h	2011-01-29 23:47:49.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/uip/uip.h	2010-12-16 11:56:16.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/uip/uip.h open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/uip/uip.h
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/uip/uip.h	2010-05-20 20:16:05.000000000 -0500
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/uip/uip.h	2011-04-02 05:32:57.000000000 -0500
 @@ -88,16 +88,6 @@ const uip_ip4addr_t all_zeroes_addr4;
   */
  
@@ -134076,9 +134089,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/uip/uip.h open-
  
  void dump_uip_packet(struct uip_stack *ustack);
  
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/uip/uip-neighbor.c open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/uip/uip-neighbor.c
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/uip/uip-neighbor.c	2011-01-29 23:47:49.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/uip/uip-neighbor.c	2010-12-16 11:56:16.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/uip/uip-neighbor.c open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/uip/uip-neighbor.c
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/uip/uip-neighbor.c	2010-05-20 20:16:05.000000000 -0500
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/uip/uip-neighbor.c	2011-04-02 05:32:57.000000000 -0500
 @@ -160,8 +160,9 @@ int uip_neighbor_lookup(struct uip_stack
  		char addr6_str[INET6_ADDRSTRLEN];
  		uint8_t *entry_mac_addr;
@@ -134116,9 +134129,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/uip/uip-neighbo
  
  	pthread_mutex_unlock(&ustack->lock);
  }
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/uip/uipopt.h open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/uip/uipopt.h
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/uip/uipopt.h	2011-01-29 23:47:49.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/uip/uipopt.h	2010-12-21 15:46:30.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/uip/uipopt.h open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/uip/uipopt.h
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/uip/uipopt.h	2010-05-20 20:16:05.000000000 -0500
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/uip/uipopt.h	2011-04-02 05:32:57.000000000 -0500
 @@ -354,8 +354,9 @@
   *
   * An UIP_ARP_MAXAGE of 120 corresponds to 20 minutes (BSD
@@ -134130,14 +134143,14 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/uip/uipopt.h op
  
  /** @} */
  
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/build_date.c open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/build_date.c
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/build_date.c	1969-12-31 18:00:00.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/build_date.c	2010-12-16 19:34:45.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/build_date.c open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/build_date.c
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/build_date.c	1969-12-31 18:00:00.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/build_date.c	2011-04-02 05:32:57.000000000 -0500
 @@ -0,0 +1 @@
 +char *build_date ="Thu Dec 16 17:34:45 PST 2010";
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/iscsid_ipc.c open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/iscsid_ipc.c
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/iscsid_ipc.c	2011-01-29 23:47:49.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/iscsid_ipc.c	2010-12-16 19:34:09.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/iscsid_ipc.c open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/iscsid_ipc.c
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/iscsid_ipc.c	2010-05-20 20:16:05.000000000 -0500
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/iscsid_ipc.c	2011-04-02 05:32:57.000000000 -0500
 @@ -17,6 +17,7 @@
  #include <unistd.h>
  #include <arpa/inet.h>
@@ -134693,9 +134706,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/iscsid_ipc
  	LOG_INFO(PFX "iscsid listening thread has shutdown");
  }
 -
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/iscsid_ipc.h open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/iscsid_ipc.h
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/iscsid_ipc.h	2011-01-29 23:47:49.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/iscsid_ipc.h	2010-12-16 11:56:16.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/iscsid_ipc.h open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/iscsid_ipc.h
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/iscsid_ipc.h	2010-05-20 20:16:05.000000000 -0500
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/iscsid_ipc.h	2011-04-02 05:32:57.000000000 -0500
 @@ -1,4 +1,4 @@
 -/* uip_ipc.h: Generic NIC management/utility functions
 +/* iscsid_ipc.h: Generic NIC management/utility functions
@@ -134710,9 +134723,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/iscsid_ipc
  void iscsid_cleanup();
  
  #endif /* __ISCSID_IPC_H__ */
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/bnx2.c open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/libs/bnx2.c
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/bnx2.c	2011-01-29 23:47:49.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/libs/bnx2.c	2010-12-16 11:56:16.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/libs/bnx2.c open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/libs/bnx2.c
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/libs/bnx2.c	2010-05-20 20:16:05.000000000 -0500
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/libs/bnx2.c	2011-04-02 05:33:11.000000000 -0500
 @@ -1,4 +1,4 @@
 -/* bnx2.c: CNIC user space driver
 +/* bnx2.c: bnx2 user space driver
@@ -134821,14 +134834,14 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/bnx2.
 -				pthread_cond_wait(&nic->uio_wait_cond,
 -						  &nic->uio_wait_mutex);
 -				pthread_mutex_unlock(&nic->uio_wait_mutex);
--
--				/*  udev might not have created the file yet */
--				sleep(2);
 +			LOG_WARN(PFX "%s: Could not open device: %s, [%s]",
 +				nic->log_name, nic->uio_device_name,
 +				strerror(errno));
 +			manually_trigger_uio_event(nic, nic->uio_minor);
  
+-				/*  udev might not have created the file yet */
+-				sleep(2);
+-
 -				lib_bnx2_loaded = 1;
 -			} else {
 -				/*  udev might not have created the file yet */
@@ -134943,7 +134956,44 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/bnx2.
  	return 0;
  }
  
-@@ -859,6 +843,16 @@ void bnx2_start_xmit(nic_t *nic, size_t 
+@@ -811,29 +795,7 @@ static void bnx2_prepare_xmit_packet(nic
+ {
+ 	bnx2_t *bp = (bnx2_t *) nic->priv;
+ 
+-	/*  Determine if we need to insert the VLAN tag */
+-	if((nic_iface->vlan_id != 0) && 
+-	   (NIC_VLAN_STRIP_ENABLED & nic->flags))
+-	{
+-		uint16_t insert_tpid = const_htons(UIP_ETHTYPE_8021Q);
+-		uint16_t insert_vlan_id = htons((0x0FFF & nic_iface->vlan_id) +
+-			((0x000F & nic_iface->vlan_priority) << 12));
+-
+-		/* We need to reinsert the VLAN tag */
+-		memcpy(bp->tx_pkt, pkt->buf, 12);
+-		memcpy(bp->tx_pkt + 12, &insert_tpid, 2);
+-		memcpy(bp->tx_pkt + 14, &insert_vlan_id, 2);
+-		memcpy(bp->tx_pkt + 16, pkt->buf + 12, pkt->buf_size - 12);
+-
+-		pkt->buf_size = pkt->buf_size +4;
+-
+-		LOG_DEBUG(PFX "%s: Inserted vlan tag id: 0x%x",
+-			  nic->log_name,
+-			  ntohs(insert_vlan_id));
+-	} else {
+-		memcpy(bp->tx_pkt, pkt->buf, pkt->buf_size);
+-	}
+-
++	memcpy(bp->tx_pkt, pkt->buf, pkt->buf_size);
+ 	msync(bp->tx_pkt, pkt->buf_size, MS_SYNC);
+ }
+ 
+@@ -854,17 +816,35 @@ void * bnx2_get_tx_pkt(nic_t *nic)
+  *  @param len - the length of the TX packet
+  *
+  */
+-void bnx2_start_xmit(nic_t *nic, size_t len)
++void bnx2_start_xmit(nic_t *nic, size_t len, u16_t vlan_id)
+ {
  	bnx2_t *bp = (bnx2_t *) nic->priv;
  	uint16_t ring_prod;
  	struct tx_bd *txbd;
@@ -134960,7 +135010,22 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/bnx2.
  
  	ring_prod = TX_RING_IDX(bp->tx_prod);
  	txbd = &bp->tx_ring[ring_prod];
-@@ -907,8 +901,8 @@ int bnx2_write(nic_t *nic, nic_interface
+ 
+ 	txbd->tx_bd_mss_nbytes = len;
+-	txbd->tx_bd_vlan_tag_flags = TX_BD_FLAGS_END | TX_BD_FLAGS_START;
++
++	if (vlan_id) {
++		txbd->tx_bd_vlan_tag_flags = (vlan_id << 16) |
++					     TX_BD_FLAGS_VLAN_TAG |
++					     TX_BD_FLAGS_END |
++					     TX_BD_FLAGS_START;
++	} else
++		txbd->tx_bd_vlan_tag_flags = TX_BD_FLAGS_END |
++					     TX_BD_FLAGS_START;
+ 
+ 	bp->tx_bseq += len;
+ 	bp->tx_prod = NEXT_TX_BD(bp->tx_prod);
+@@ -907,14 +887,14 @@ int bnx2_write(nic_t *nic, nic_interface
  
  	if(pthread_mutex_trylock(&nic->xmit_mutex) != 0)
  	{
@@ -134971,7 +135036,14 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/bnx2.
  		return -EINVAL;
  	}
  
-@@ -987,24 +981,35 @@ static int bnx2_read(nic_t *nic, packet_
+ 	bnx2_prepare_xmit_packet(nic, nic_iface,
+ 				 pkt);
+-	bnx2_start_xmit(nic, pkt->buf_size);
++	bnx2_start_xmit(nic, pkt->buf_size, nic_iface->vlan_id);
+ 
+ 	/*  bump the bnx2 dev send statistics */
+ 	nic->stats.tx.packets++;
+@@ -987,24 +967,35 @@ static int bnx2_read(nic_t *nic, packet_
  			     (len < pkt->max_buf_size))
  				dump_packet_to_log(pkt->nic_iface, rx_pkt, len);
  		} else {
@@ -135023,7 +135095,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/bnx2.
  		}
  
  		bp->rx_index++;
-@@ -1045,8 +1050,8 @@ static int bnx2_clear_tx_intr(nic_t *nic
+@@ -1045,8 +1036,8 @@ static int bnx2_clear_tx_intr(nic_t *nic
  		return -EINVAL;
  	}
  
@@ -135034,9 +135106,19 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/bnx2.
  	}
  
  	LOG_DEBUG(PFX "%s: clearing tx interrupt [%d %d]",
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/bnx2.h open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/libs/bnx2.h
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/bnx2.h	2011-01-29 23:47:49.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/libs/bnx2.h	2010-12-16 11:56:16.000000000 -0600
+@@ -1073,7 +1064,8 @@ static int bnx2_clear_tx_intr(nic_t *nic
+ 						 pkt->nic_iface,
+ 						 pkt);
+ 
+-			bnx2_start_xmit(nic, pkt->buf_size);
++			bnx2_start_xmit(nic, pkt->buf_size,
++					pkt->nic_iface->vlan_id);
+ 
+ 			LOG_DEBUG(PFX "%s: transmitted queued packet %d bytes "
+ 				      "dev->tx_cons: %d, dev->tx_prod: %d, "
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/libs/bnx2.h open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/libs/bnx2.h
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/libs/bnx2.h	2010-05-20 20:16:05.000000000 -0500
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/libs/bnx2.h	2011-04-02 05:33:11.000000000 -0500
 @@ -1,4 +1,4 @@
 -/* cnic.h: CNIC user space driver
 +/* bnx2.h: bnx2 user space driver
@@ -135068,7 +135150,15 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/bnx2.
   ******************************************************************************/
  /* status_block definition for MSI */
  struct status_block {
-@@ -141,6 +140,16 @@ struct l2_fhdr {
+@@ -81,6 +80,7 @@ struct tx_bd {
+ 	__u32 tx_bd_haddr_lo;
+ 	__u32 tx_bd_mss_nbytes;
+ 	__u32 tx_bd_vlan_tag_flags;
++		#define TX_BD_FLAGS_VLAN_TAG		(1<<3)
+ 		#define TX_BD_FLAGS_END			(1<<6)
+ 		#define TX_BD_FLAGS_START		(1<<7)
+ };
+@@ -141,6 +141,16 @@ struct l2_fhdr {
  #define BNX2_EMAC_RX_MODE_FILT_BROADCAST		(1L<<11)
  #define BNX2_EMAC_RX_MODE_SORT_MODE			(1L<<12)
  
@@ -135085,7 +135175,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/bnx2.
  /*
   * tsch_reg definition
   * offset: 0x4c00
-@@ -184,7 +193,7 @@ struct l2_fhdr {
+@@ -184,7 +194,7 @@ struct l2_fhdr {
  #define CHIP_BOND_ID(bp)                ((bp) & 0xf)
  
  
@@ -135094,7 +135184,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/bnx2.
  
  #define TX_DESC_CNT  (4096 / sizeof(struct tx_bd))
  #define MAX_TX_DESC_CNT (TX_DESC_CNT - 1)
-@@ -212,14 +221,9 @@ typedef struct bnx2 {
+@@ -212,14 +222,9 @@ typedef struct bnx2 {
  	nic_t	*parent;
  
  	uint16_t   flags;
@@ -135112,15 +135202,15 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/bnx2.
  
  	void *reg;		/* Pointer to the mapped registers	*/
  
-@@ -270,4 +274,4 @@ typedef struct bnx2 {
+@@ -270,4 +275,4 @@ typedef struct bnx2 {
   *  bnx2 Function Declarations
   ******************************************************************************/
  struct nic_ops * bnx2_get_ops();
 -#endif /* __CNIC_H__*/
 +#endif /* __BNX2_H__*/
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/bnx2x.c open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/libs/bnx2x.c
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/bnx2x.c	2011-01-29 23:47:49.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/libs/bnx2x.c	2011-01-04 17:10:58.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/libs/bnx2x.c open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/libs/bnx2x.c
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/libs/bnx2x.c	2010-05-20 20:16:05.000000000 -0500
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/libs/bnx2x.c	2011-04-02 05:33:11.000000000 -0500
 @@ -40,9 +40,6 @@
  /*  Foward struct declarations */
  struct nic_ops bnx2x_op;
@@ -135328,7 +135418,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/bnx2x
  	if (CHIP_IS_E1(bp))
  		bp->iro = e1_iro;
  	else if (CHIP_IS_E1H(bp))
-@@ -757,22 +805,23 @@ static int bnx2x_open(nic_t *nic)
+@@ -757,25 +805,28 @@ static int bnx2x_open(nic_t *nic)
  		bp->iro = e2_iro;
  
  	if (bnx2x_is_ver60(bp)) {
@@ -135347,6 +135437,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/bnx2x
  
  		bp->get_rx_cons = bnx2x_get_rx_60;
  		bp->get_tx_cons = bnx2x_get_tx_60;
++		bp->tx_vlan_tag_bit = ETH_TX_BD_FLAGS_VLAN_TAG_T6X;
  	} else {
  		bp->rx_prod_io = BAR_USTRORM_INTMEM +
 -				USTORM_RX_PRODS_OFFSET(bp->port, 17);
@@ -135357,7 +135448,11 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/bnx2x
  
  		bp->get_rx_cons = bnx2x_get_rx;
  		bp->get_tx_cons = bnx2x_get_tx;
-@@ -807,6 +856,56 @@ static int bnx2x_open(nic_t *nic)
++		bp->tx_vlan_tag_bit = ETH_TX_BD_FLAGS_VLAN_TAG_T5X;
+ 	}
+ 
+ 	bp->tx_cons = 0;
+@@ -807,6 +858,56 @@ static int bnx2x_open(nic_t *nic)
  	nic->mac_addr[4] = (__u8) (val >> 8);
  	nic->mac_addr[5] = (__u8) val;
  
@@ -135414,7 +135509,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/bnx2x
  	LOG_INFO(PFX "%s:  Using mac address: %02x:%02x:%02x:%02x:%02x:%02x",
  		 nic->log_name,
  		 nic->mac_addr[0], nic->mac_addr[1], nic->mac_addr[2],
-@@ -818,16 +917,12 @@ static int bnx2x_open(nic_t *nic)
+@@ -818,16 +919,12 @@ static int bnx2x_open(nic_t *nic)
  		nic->flags |= NIC_VLAN_STRIP_ENABLED;
  	}
  
@@ -135432,7 +135527,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/bnx2x
  
  	return 0;
  
-@@ -876,11 +971,6 @@ static int bnx2x_uio_close_resources(nic
+@@ -876,11 +973,6 @@ static int bnx2x_uio_close_resources(nic
  	bnx2x_t *bp = (bnx2x_t *) nic->priv;
  	int rc = 0;
  
@@ -135444,7 +135539,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/bnx2x
  	/*  Check if there is an assoicated bnx2x device */
  	if(bp == NULL) {
  		LOG_WARN(PFX "%s: when closing resources there is "
-@@ -907,7 +997,6 @@ static int bnx2x_uio_close_resources(nic
+@@ -907,7 +999,6 @@ static int bnx2x_uio_close_resources(nic
  	}
  
  	if (bp->tx_ring != NULL) {
@@ -135452,7 +135547,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/bnx2x
  		rc = munmap(bp->tx_ring, 4 * getpagesize());
  		if (rc != 0)
  			LOG_WARN(PFX "%s: Couldn't unmap tx_rings",
-@@ -975,29 +1064,19 @@ static int bnx2x_uio_close_resources(nic
+@@ -975,29 +1066,19 @@ static int bnx2x_uio_close_resources(nic
   */
  static int bnx2x_close(nic_t *nic, NIC_SHUTDOWN_T graceful)
  {
@@ -135488,7 +135583,45 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/bnx2x
  
  	return 0;
  }
-@@ -1057,6 +1136,16 @@ void bnx2x_start_xmit(nic_t *nic, size_t
+@@ -1008,29 +1089,7 @@ static void bnx2x_prepare_xmit_packet(ni
+ {
+ 	bnx2x_t *bp = (bnx2x_t *) nic->priv;
+ 
+-	/*  Determine if we need to insert the VLAN tag */
+-	if((nic_iface->vlan_id != 0) && 
+-	   (NIC_VLAN_STRIP_ENABLED & nic->flags))
+-	{
+-		uint16_t insert_tpid = const_htons(UIP_ETHTYPE_8021Q);
+-		uint16_t insert_vlan_id = htons((0x0FFF & nic_iface->vlan_id) +
+-			((0x000F & nic_iface->vlan_priority) << 12));
+-
+-		/* We need to reinsert the VLAN tag */
+-		memcpy(bp->tx_pkt, pkt->buf, 12);
+-		memcpy(bp->tx_pkt + 12, &insert_tpid, 2);
+-		memcpy(bp->tx_pkt + 14, &insert_vlan_id, 2);
+-		memcpy(bp->tx_pkt + 16, pkt->buf + 12, pkt->buf_size - 12);
+-
+-		pkt->buf_size = pkt->buf_size +4;
+-
+-		LOG_DEBUG(PFX "%s: Inserted vlan tag id: 0x%x",
+-			  nic->log_name,
+-			  ntohs(insert_vlan_id));
+-	} else {
+-		memcpy(bp->tx_pkt, pkt->buf, pkt->buf_size);
+-	}
+-
++	memcpy(bp->tx_pkt, pkt->buf, pkt->buf_size);
+ 	msync(bp->tx_pkt, pkt->buf_size, MS_SYNC);
+ }
+ 
+@@ -1051,17 +1110,27 @@ void * bnx2x_get_tx_pkt(nic_t *nic)
+  *  @param len - the length of the TX packet
+  *
+  */
+-void bnx2x_start_xmit(nic_t *nic, size_t len)
++void bnx2x_start_xmit(nic_t *nic, size_t len, u16_t vlan_id)
+ {
+ 	bnx2x_t *bp = (bnx2x_t *) nic->priv;
  	uint16_t ring_prod;
  	struct eth_tx_start_bd *txbd;
  	struct eth_tx_bd *txbd2;
@@ -135505,7 +135638,13 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/bnx2x
  
  	ring_prod = BNX2X_TX_RING_IDX(bp->tx_bd_prod);
  	txbd = &bp->tx_ring[ring_prod];
-@@ -1076,8 +1165,17 @@ void bnx2x_start_xmit(nic_t *nic, size_t
+ 
+-	txbd->vlan = bp->tx_prod;
++	BNX2X_SET_TX_VLAN(bp, txbd, vlan_id);
+ 
+ 	bp->tx_prod++;
+ 	bp->tx_bd_prod = BNX2X_NEXT_TX_BD(bp->tx_bd_prod);
+@@ -1076,8 +1145,17 @@ void bnx2x_start_xmit(nic_t *nic, size_t
  	bp->tx_bd_prod = BNX2X_NEXT_TX_BD(bp->tx_bd_prod);
  
  	barrier();
@@ -135525,7 +135664,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/bnx2x
  	LOG_DEBUG(PFX "%s: sent %d bytes using bp->tx_prod: %d",
  		      nic->log_name, len, bp->tx_prod);
  }
-@@ -1093,25 +1191,37 @@ int bnx2x_write(nic_t *nic, nic_interfac
+@@ -1093,31 +1171,43 @@ int bnx2x_write(nic_t *nic, nic_interfac
  {
  	bnx2x_t *bp = (bnx2x_t *) nic->priv;
  	struct uip_stack *uip = &nic_iface->ustack;
@@ -135568,7 +135707,14 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/bnx2x
  		return -EINVAL;
  	}
  
-@@ -1152,8 +1262,8 @@ static int bnx2x_read(nic_t *nic, packet
+ 	bnx2x_prepare_xmit_packet(nic, nic_iface,
+ 				 pkt);
+-	bnx2x_start_xmit(nic, pkt->buf_size);
++	bnx2x_start_xmit(nic, pkt->buf_size, nic_iface->vlan_id);
+ 
+ 	/*  bump the cnic dev send statistics */
+ 	nic->stats.tx.packets++;
+@@ -1152,8 +1242,8 @@ static int bnx2x_read(nic_t *nic, packet
  
  	hw_cons = bp->get_rx_cons(bp);
  	sw_cons = bp->rx_cons;
@@ -135579,7 +135725,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/bnx2x
  
  	if (sw_cons != hw_cons) {
  		uint16_t comp_ring_index = sw_cons & BNX2X_MAX_RCQ_DESC_CNT;
-@@ -1161,7 +1271,8 @@ static int bnx2x_read(nic_t *nic, packet
+@@ -1161,7 +1251,8 @@ static int bnx2x_read(nic_t *nic, packet
  		union eth_rx_cqe *cqe;
  		__u8 cqe_fp_flags;
  		void *rx_pkt;
@@ -135589,7 +135735,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/bnx2x
  
  		cqe = &bp->rx_comp_ring[comp_ring_index];
  		cqe_fp_flags = cqe->fast_path_cqe.type_error_flags;
-@@ -1199,8 +1310,6 @@ static int bnx2x_read(nic_t *nic, packet
+@@ -1199,8 +1290,6 @@ static int bnx2x_read(nic_t *nic, packet
   	                               pkt->vlan_tag = 0;
  				}
  
@@ -135598,7 +135744,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/bnx2x
  				LOG_DEBUG(PFX "%s: processing packet length: %d",
  					  nic->log_name, len);
  
-@@ -1213,14 +1322,16 @@ static int bnx2x_read(nic_t *nic, packet
+@@ -1213,14 +1302,16 @@ static int bnx2x_read(nic_t *nic, packet
  			bd_prod = BNX2X_NEXT_RX_IDX(bd_prod);
  
  		}
@@ -135617,7 +135763,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/bnx2x
  
  	return rc;
  }
-@@ -1243,8 +1354,16 @@ static int bnx2x_clear_tx_intr(nic_t *ni
+@@ -1243,8 +1334,16 @@ static int bnx2x_clear_tx_intr(nic_t *ni
  		return -EINVAL;
  	}
  
@@ -135636,7 +135782,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/bnx2x
  
  	LOG_DEBUG(PFX "%s: clearing tx interrupt [%d %d]",
  		  nic->log_name,
-@@ -1254,9 +1373,10 @@ static int bnx2x_clear_tx_intr(nic_t *ni
+@@ -1254,9 +1353,10 @@ static int bnx2x_clear_tx_intr(nic_t *ni
  	/*  There is a queued TX packet that needs to be sent out.  The usual
  	 *  case is when stack will send an ARP packet out before sending the
  	 *  intended packet */
@@ -135648,7 +135794,17 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/bnx2x
  
  		LOG_DEBUG(PFX "%s: sending queued tx packet", nic->log_name);
  		pkt = nic_dequeue_tx_packet(nic);
-@@ -1278,6 +1398,25 @@ static int bnx2x_clear_tx_intr(nic_t *ni
+@@ -1269,7 +1369,8 @@ static int bnx2x_clear_tx_intr(nic_t *ni
+ 						  pkt->nic_iface,
+ 						  pkt);
+ 
+-			bnx2x_start_xmit(nic, pkt->buf_size);
++			bnx2x_start_xmit(nic, pkt->buf_size,
++					 pkt->nic_iface->vlan_id);
+ 
+ 			LOG_DEBUG(PFX "%s: transmitted queued packet %d bytes "
+ 				      "dev->tx_cons: %d, dev->tx_prod: %d, dev->tx_bd_prod:%d",
+@@ -1278,6 +1379,25 @@ static int bnx2x_clear_tx_intr(nic_t *ni
  
  			return 0;
  		}
@@ -135674,10 +135830,100 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/bnx2x
  	}
  
  	pthread_mutex_unlock(&nic->xmit_mutex);
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/bnx2x.h open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/libs/bnx2x.h
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/bnx2x.h	2011-01-29 23:47:49.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/libs/bnx2x.h	2010-12-16 11:56:16.000000000 -0600
-@@ -234,6 +234,17 @@ union eth_rx_cqe {
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/libs/bnx2x.h open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/libs/bnx2x.h
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/libs/bnx2x.h	2010-05-20 20:16:05.000000000 -0500
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/libs/bnx2x.h	2011-04-02 05:33:11.000000000 -0500
+@@ -108,27 +108,71 @@ struct host_sp_status_block {
+ #define HC_SP_INDEX_ETH_ISCSI_CQ_CONS		5
+ #define HC_SP_INDEX_ETH_ISCSI_RX_CQ_CONS	1
+ 
++/*
++ * VLAN mode on TX BDs
++ */
++enum eth_tx_vlan_type {
++	X_ETH_NO_VLAN=0,
++	X_ETH_OUTBAND_VLAN=1,
++	X_ETH_INBAND_VLAN=2,
++	X_ETH_FW_ADDED_VLAN=3,
++	MAX_ETH_TX_VLAN_TYPE
++};
++
+ /*  TX Buffer descriptor */
+ struct eth_tx_bd_flags {
+ 	__u8 as_bitfield;
+-#define ETH_TX_BD_FLAGS_VLAN_TAG (0x1<<0)
+-#define ETH_TX_BD_FLAGS_VLAN_TAG_SHIFT 0
+-#define ETH_TX_BD_FLAGS_IP_CSUM (0x1<<1)
+-#define ETH_TX_BD_FLAGS_IP_CSUM_SHIFT 1
+-#define ETH_TX_BD_FLAGS_L4_CSUM (0x1<<2)
+-#define ETH_TX_BD_FLAGS_L4_CSUM_SHIFT 2
+-#define ETH_TX_BD_FLAGS_END_BD (0x1<<3)
+-#define ETH_TX_BD_FLAGS_END_BD_SHIFT 3
+-#define ETH_TX_BD_FLAGS_START_BD (0x1<<4)
+-#define ETH_TX_BD_FLAGS_START_BD_SHIFT 4
+-#define ETH_TX_BD_FLAGS_HDR_POOL (0x1<<5)
+-#define ETH_TX_BD_FLAGS_HDR_POOL_SHIFT 5
+-#define ETH_TX_BD_FLAGS_SW_LSO (0x1<<6)
+-#define ETH_TX_BD_FLAGS_SW_LSO_SHIFT 6
+-#define ETH_TX_BD_FLAGS_IPV6 (0x1<<7)
+-#define ETH_TX_BD_FLAGS_IPV6_SHIFT 7
+-};
+-
++/* t6.X HSI */
++#define ETH_TX_BD_FLAGS_IP_CSUM_T6X (0x1<<0)
++#define ETH_TX_BD_FLAGS_IP_CSUM_SHIFT_T6X 0
++#define ETH_TX_BD_FLAGS_L4_CSUM_T6X (0x1<<1)
++#define ETH_TX_BD_FLAGS_L4_CSUM_SHIFT_T6X 1
++#define ETH_TX_BD_FLAGS_VLAN_MODE_T6X (0x3<<2)
++#define ETH_TX_BD_FLAGS_VLAN_MODE_SHIFT_T6X 2
++#define ETH_TX_BD_FLAGS_START_BD_T6X (0x1<<4)
++#define ETH_TX_BD_FLAGS_START_BD_SHIFT_T6X 4
++#define ETH_TX_BD_FLAGS_IS_UDP_T6X (0x1<<5)
++#define ETH_TX_BD_FLAGS_IS_UDP_SHIFT_T6X 5
++#define ETH_TX_BD_FLAGS_SW_LSO_T6X (0x1<<6)
++#define ETH_TX_BD_FLAGS_SW_LSO_SHIFT_T6X 6
++#define ETH_TX_BD_FLAGS_IPV6_T6X (0x1<<7)
++#define ETH_TX_BD_FLAGS_IPV6_SHIFT_T6X 7
++
++/* Legacy t5.2 HSI defines */
++#define ETH_TX_BD_FLAGS_VLAN_TAG_T5X (0x1<<0)
++#define ETH_TX_BD_FLAGS_VLAN_TAG_SHIFT_T5X 0
++#define ETH_TX_BD_FLAGS_IP_CSUM_T5X (0x1<<1)
++#define ETH_TX_BD_FLAGS_IP_CSUM_SHIFT_T5X 1
++#define ETH_TX_BD_FLAGS_L4_CSUM_T5X (0x1<<2)
++#define ETH_TX_BD_FLAGS_L4_CSUM_SHIFT_T5X 2
++#define ETH_TX_BD_FLAGS_END_BD_T5X (0x1<<3)
++#define ETH_TX_BD_FLAGS_END_BD_SHIFT_T5X 3
++#define ETH_TX_BD_FLAGS_START_BD_T5X (0x1<<4)
++#define ETH_TX_BD_FLAGS_START_BD_SHIFT_T5X 4
++#define ETH_TX_BD_FLAGS_HDR_POOL_T5X (0x1<<5)
++#define ETH_TX_BD_FLAGS_HDR_POOL_SHIFT_T5X 5
++#define ETH_TX_BD_FLAGS_SW_LSO_T5X (0x1<<6)
++#define ETH_TX_BD_FLAGS_SW_LSO_SHIFT_T5X 6
++#define ETH_TX_BD_FLAGS_IPV6_T5X (0x1<<7)
++#define ETH_TX_BD_FLAGS_IPV6_SHIFT_T5X 7
++};
++
++#define ETH_TX_BD_FLAGS_VLAN_TAG_T6X		\
++	(X_ETH_OUTBAND_VLAN << ETH_TX_BD_FLAGS_VLAN_MODE_SHIFT_T6X)
++
++#define BNX2X_SET_TX_VLAN(bp, txbd, vlan_id)				\
++	do {								\
++		if (vlan_id) {						\
++			(txbd)->vlan = vlan_id;				\
++			(txbd)->bd_flags.as_bitfield |=			\
++				(bp)->tx_vlan_tag_bit;			\
++		} else {						\
++			(txbd)->vlan = (bp)->tx_prod;			\
++			(txbd)->bd_flags.as_bitfield &=			\
++				~(bp)->tx_vlan_tag_bit;			\
++		}							\
++	} while (0)
++ 
+ struct eth_tx_start_bd {
+ 	__u32 addr_lo;
+ 	__u32 addr_hi;
+@@ -234,6 +278,17 @@ union eth_rx_cqe {
  	struct eth_rx_cqe_next_page next_page_cqe;
  };
  
@@ -135695,7 +135941,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/bnx2x
  /******************************************************************************
   *  BNX2X Registers and HSI
   ******************************************************************************/
-@@ -285,6 +296,9 @@ union eth_rx_cqe {
+@@ -285,6 +340,9 @@ union eth_rx_cqe {
  #define MISC_REG_PORT4MODE_EN				0x4750
  #define MISC_REG_PORT4MODE_EN_OVWR			0x4720
  
@@ -135705,7 +135951,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/bnx2x
  #define BAR_USTRORM_INTMEM				0x400000
  #define BAR_CSTRORM_INTMEM				0x410000
  #define BAR_XSTRORM_INTMEM				0x420000
-@@ -316,6 +330,8 @@ struct iro {
+@@ -316,6 +374,8 @@ struct iro {
  				   ETH_MAX_RX_CLIENTS_E2 :		\
  				   ETH_MAX_RX_CLIENTS_E1H))
  
@@ -135714,7 +135960,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/bnx2x
  #define	SHMEM_P0_ISCSI_MAC_UPPER	0x4c
  #define	SHMEM_P0_ISCSI_MAC_LOWER	0x50
  #define	SHMEM_P1_ISCSI_MAC_UPPER	0x1dc
-@@ -332,6 +348,8 @@ struct iro {
+@@ -332,6 +392,8 @@ struct iro {
  
  #define BNX2X_RX_DESC_CNT	(4096 / sizeof(struct eth_rx_bd))
  #define BNX2X_MAX_RX_DESC_CNT		(BNX2X_RX_DESC_CNT - 2)
@@ -135723,7 +135969,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/bnx2x
  
  #define BNX2X_TX_DESC_CNT	(4096 / sizeof(struct eth_tx_start_bd))
  #define BNX2X_MAX_TX_DESC_CNT		(BNX2X_TX_DESC_CNT - 1)
-@@ -341,6 +359,7 @@ struct iro {
+@@ -341,6 +403,7 @@ struct iro {
  
  #define BNX2X_NEXT_RCQ_IDX(x)	((((x) & BNX2X_MAX_RCQ_DESC_CNT) == \
  				  (BNX2X_MAX_RCQ_DESC_CNT - 1)) ? (x) + 2 : (x) + 1)
@@ -135731,7 +135977,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/bnx2x
  
  #define BNX2X_NEXT_TX_BD(x) (((x) & (BNX2X_MAX_TX_DESC_CNT - 1)) ==	\
  		(BNX2X_MAX_TX_DESC_CNT - 1)) ?				\
-@@ -378,6 +397,7 @@ typedef struct bnx2x {
+@@ -378,6 +441,7 @@ typedef struct bnx2x {
  #define CNIC_UIO_ADDED_MULICAST		0x0020
  #define CNIC_UIO_MSIX_ENABLED		0x0200
  #define CNIC_UIO_TX_HAS_SENT		0x0400
@@ -135739,7 +135985,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/bnx2x
  
  	void *reg;		/* Pointer to the BAR1 mapped registers	*/
  	void *reg2;		/* Pointer to the BAR2 mapped registers	*/
-@@ -386,9 +406,12 @@ typedef struct bnx2x {
+@@ -386,9 +450,12 @@ typedef struct bnx2x {
  
  	__u32 chip_id;
  	__u32 shmem_base;
@@ -135752,7 +135998,15 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/bnx2x
  
  	struct iro *iro;
  
-@@ -404,6 +427,7 @@ typedef struct bnx2x {
+@@ -397,6 +464,7 @@ typedef struct bnx2x {
+ 	__u16 tx_prod;
+ 	__u16 tx_bd_prod;
+ 	__u16 tx_cons;
++	__u8  tx_vlan_tag_bit;
+ 
+ 	__u32 rx_prod_io;
+ 
+@@ -404,6 +472,7 @@ typedef struct bnx2x {
  	__u16 rx_bd_prod;
  	__u16 rx_cons;
  	__u16 rx_bd_cons;
@@ -135760,9 +136014,18 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/bnx2x
  
  	__u16 (*get_rx_cons)(struct bnx2x *);
  	__u16 (*get_tx_cons)(struct bnx2x *);
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/cnic.c open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/libs/cnic.c
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/cnic.c	2011-01-29 23:47:49.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/libs/cnic.c	2010-12-16 15:51:13.000000000 -0600
+@@ -435,7 +504,7 @@ typedef struct bnx2x {
+ /******************************************************************************
+  *  bnx2x Function Declarations
+  ******************************************************************************/
+-void bnx2x_start_xmit(nic_t *nic, size_t len);
++void bnx2x_start_xmit(nic_t *nic, size_t len, u16_t vlan_id);
+ 
+ //struct nic_interface * bnx2x_find_nic_iface(nic_t * nic,
+ //                                           uint16_t vlan_id);
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/libs/cnic.c open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/libs/cnic.c
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/libs/cnic.c	2010-05-20 20:16:05.000000000 -0500
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/libs/cnic.c	2011-04-02 05:33:11.000000000 -0500
 @@ -1,4 +1,4 @@
 -/* cnic_nl.c: CNIC UIO uIP user space stack
 +/* cnic.c: CNIC UIO uIP user space stack
@@ -135814,7 +136077,13 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/cnic.
  		LOG_DEBUG(PFX "%s: could not get xmit_mutex", nic->log_name);
  		return -EAGAIN;
  	}
-@@ -96,7 +100,7 @@ static int cnic_arp_send(nic_t *nic, nic
+@@ -92,11 +96,12 @@ static int cnic_arp_send(nic_t *nic, nic
+ 	memcpy(arp->arp_spa, nic_iface->ustack.hostaddr, 4);
+ 	memcpy(arp->arp_tpa, &dst_ip, 4);
+ 
+-	(*nic->nic_library->ops->start_xmit)(nic, pkt_size);
++	(*nic->nic_library->ops->start_xmit)(nic, pkt_size,
++					     nic_iface->vlan_id);
  
  	memcpy(&addr.s_addr, &dst_ip, sizeof(addr.s_addr));
  	LOG_DEBUG(PFX "%s: Sent cnic arp request for IP: %s",
@@ -135823,7 +136092,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/cnic.
  
  	return 0;
  }
-@@ -104,25 +108,40 @@ static int cnic_arp_send(nic_t *nic, nic
+@@ -104,25 +109,40 @@ static int cnic_arp_send(nic_t *nic, nic
  static int cnic_neigh_soliciation_send(nic_t *nic,
  				       nic_interface_t *nic_iface, int fd,
  				       __u8 * mac_addr,
@@ -135871,7 +136140,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/cnic.
  		return -EAGAIN;
  	}
  
-@@ -142,12 +161,20 @@ static int cnic_neigh_soliciation_send(n
+@@ -142,12 +162,20 @@ static int cnic_neigh_soliciation_send(n
  	ipv6_hdr->ip6_plen = htons((sizeof(*sol) + sizeof(*opt_hdr) + 6)); /*  Add optionial header */
  	ipv6_hdr->ip6_hlim = 255;
  	ipv6_hdr->ip6_nxt  = IPPROTO_ICMPV6;
@@ -135896,9 +136165,12 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/cnic.
  
  	/*  Prepare the ICMPv6 header */
  	sol = (struct nd_neighbor_solicit *)(ipv6_hdr + 1);
-@@ -171,7 +198,8 @@ static int cnic_neigh_soliciation_send(n
+@@ -169,9 +197,10 @@ static int cnic_neigh_soliciation_send(n
  
- 	(*nic->nic_library->ops->start_xmit)(nic, pkt_size);
+ 	sol->nd_ns_hdr.icmp6_cksum = ~icmpv6_checksum((uint8_t *) ipv6_hdr);
+ 
+-	(*nic->nic_library->ops->start_xmit)(nic, pkt_size);
++	(*nic->nic_library->ops->start_xmit)(nic, pkt_size, nic_iface->vlan_id);
  
 -	LOG_DEBUG(PFX "%s: Sent cnic ICMPv6 neighbor request", nic->log_name);
 +	LOG_DEBUG(PFX "%s: Sent cnic ICMPv6 neighbor request %s",
@@ -135906,7 +136178,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/cnic.
  
  	return 0;
  }
-@@ -183,13 +211,13 @@ static int cnic_nl_neigh_rsp(nic_t *nic,
+@@ -183,13 +212,13 @@ static int cnic_nl_neigh_rsp(nic_t *nic,
  			     __u8 *mac_addr,
  			     nic_interface_t *nic_iface,
  			     int status, int type)
@@ -135921,7 +136193,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/cnic.
  
          memset(&dest_addr, 0, sizeof(dest_addr));
          dest_addr.nl_family = AF_NETLINK;
-@@ -197,6 +225,10 @@ static int cnic_nl_neigh_rsp(nic_t *nic,
+@@ -197,6 +226,10 @@ static int cnic_nl_neigh_rsp(nic_t *nic,
          dest_addr.nl_groups = 0; /* unicast */
  
  	ret_buf = calloc(1, NLMSG_SPACE(sizeof(struct iscsi_uevent) + 256));
@@ -135932,7 +136204,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/cnic.
  
          memset(ret_buf, 0, NLMSG_SPACE(sizeof(struct iscsi_uevent) + 256));
  
-@@ -207,16 +239,32 @@ static int cnic_nl_neigh_rsp(nic_t *nic,
+@@ -207,16 +240,32 @@ static int cnic_nl_neigh_rsp(nic_t *nic,
  	ret_ev->u.set_path.host_no = ev->r.req_path.host_no;
  
  	/*  Prepare the iscsi_path buffer */
@@ -135967,7 +136239,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/cnic.
  	}
  	memcpy(path_rsp->mac_addr, mac_addr, 6);
  	path_rsp->vlan_id = path_req->vlan_id;
-@@ -225,7 +273,8 @@ static int cnic_nl_neigh_rsp(nic_t *nic,
+@@ -225,7 +274,8 @@ static int cnic_nl_neigh_rsp(nic_t *nic,
          rc = __kipc_call(fd, ret_ev, sizeof(*ret_ev) + sizeof(*path_rsp));
          if (rc > 0) {
                  LOG_DEBUG(PFX "neighbor reply sent back to kernel "
@@ -135977,7 +136249,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/cnic.
  			      mac_addr[0], mac_addr[1],
  			      mac_addr[2], mac_addr[3],
  			      mac_addr[4], mac_addr[5]);
-@@ -239,6 +288,11 @@ static int cnic_nl_neigh_rsp(nic_t *nic,
+@@ -239,6 +289,11 @@ static int cnic_nl_neigh_rsp(nic_t *nic,
  	return rc;
  }
  
@@ -135989,7 +136261,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/cnic.
  /**
   * cnic_handle_ipv4_iscsi_path_req() - This function will handle the IPv4
   * 				       path req calls the bnx2i kernel module
-@@ -252,17 +306,21 @@ int cnic_handle_ipv4_iscsi_path_req(nic_
+@@ -252,17 +307,21 @@ int cnic_handle_ipv4_iscsi_path_req(nic_
  				    struct iscsi_path *path, size_t buf_len) 
  {
  	nic_interface_t *nic_iface;
@@ -136014,7 +136286,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/cnic.
  		if (nic_iface == NULL) {
  			pthread_mutex_unlock(&nic_list_mutex);
  			LOG_ERR(PFX "%s: Couldn't find net_iface vlan_id: %d",
-@@ -273,34 +331,94 @@ int cnic_handle_ipv4_iscsi_path_req(nic_
+@@ -273,34 +332,95 @@ int cnic_handle_ipv4_iscsi_path_req(nic_
  		nic_iface->vlan_id = path->vlan_id;
  	}
  
@@ -136036,7 +136308,8 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/cnic.
 +	if (src_matching_addr.s_addr != dst_matching_addr.s_addr) {
 +		/*  If there is an assigned gateway address then use it
 +		 *  if the source address doesn't match */
-+		if (nic_iface->ustack.default_route_addr != 0) {
++		if (nic_iface->ustack.default_route_addr[0] |
++		    nic_iface->ustack.default_route_addr[1]) {
 +			memcpy(&dst_addr,
 +			       &nic_iface->ustack.default_route_addr,
 +			       sizeof(dst_addr));
@@ -136122,7 +136395,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/cnic.
  			}
  
  			arp_retry++;
-@@ -308,19 +426,19 @@ int cnic_handle_ipv4_iscsi_path_req(nic_
+@@ -308,19 +428,19 @@ int cnic_handle_ipv4_iscsi_path_req(nic_
  	}
  
  done:
@@ -136145,7 +136418,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/cnic.
  
  	return rc;
  }
-@@ -339,24 +457,24 @@ int cnic_handle_ipv6_iscsi_path_req(nic_
+@@ -339,24 +459,24 @@ int cnic_handle_ipv6_iscsi_path_req(nic_
  {
  	nic_interface_t *nic_iface;
  	__u8 mac_addr[6];
@@ -136178,7 +136451,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/cnic.
  		if (nic_iface == NULL) {
  			pthread_mutex_unlock(&nic_list_mutex);
  			LOG_ERR(PFX "%s: Couldn't find net_iface vlan_id: %d",
-@@ -367,34 +485,95 @@ int cnic_handle_ipv6_iscsi_path_req(nic_
+@@ -367,34 +487,95 @@ int cnic_handle_ipv6_iscsi_path_req(nic_
  		nic_iface->vlan_id = path->vlan_id;
  	}
  
@@ -136285,7 +136558,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/cnic.
  			}
  
  			neighbor_retry++;
-@@ -402,19 +581,18 @@ int cnic_handle_ipv6_iscsi_path_req(nic_
+@@ -402,19 +583,18 @@ int cnic_handle_ipv6_iscsi_path_req(nic_
  	}
  
  done:
@@ -136308,9 +136581,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/cnic.
  
  	return rc;
  
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/Makefile open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/libs/Makefile
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/Makefile	1969-12-31 18:00:00.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/libs/Makefile	2010-12-16 19:34:45.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/libs/Makefile open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/libs/Makefile
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/libs/Makefile	1969-12-31 18:00:00.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/libs/Makefile	2011-04-02 05:32:57.000000000 -0500
 @@ -0,0 +1,461 @@
 +# Makefile.in generated by automake 1.9.6 from Makefile.am.
 +# src/unix/libs/Makefile.  Generated from Makefile.in by configure.
@@ -136773,9 +137046,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/Makef
 +# Tell versions [3.59,3.63) of GNU make to not export all variables.
 +# Otherwise a system limit (for SysV at least) may be exceeded.
 +.NOEXPORT:
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/Makefile.in open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/libs/Makefile.in
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/Makefile.in	2011-01-29 23:47:49.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/libs/Makefile.in	2010-12-16 15:51:29.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/libs/Makefile.in open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/libs/Makefile.in
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/libs/Makefile.in	2010-05-20 20:16:05.000000000 -0500
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/libs/Makefile.in	2011-04-02 05:32:57.000000000 -0500
 @@ -1,8 +1,8 @@
 -# Makefile.in generated by automake 1.10.2 from Makefile.am.
 +# Makefile.in generated by automake 1.9.6 from Makefile.am.
@@ -137149,9 +137422,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/libs/Makef
  
  # Tell versions [3.59,3.63) of GNU make to not export all variables.
  # Otherwise a system limit (for SysV at least) may be exceeded.
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/logger.c open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/logger.c
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/logger.c	2011-01-29 23:47:49.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/logger.c	2010-12-16 11:56:16.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/logger.c open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/logger.c
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/logger.c	2010-05-20 20:16:05.000000000 -0500
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/logger.c	2011-04-02 05:32:57.000000000 -0500
 @@ -44,45 +44,36 @@ struct logger main_log = {
   * Logger Functions
   ******************************************************************************/
@@ -137288,9 +137561,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/logger.c o
  			main_log.log_file = NULL;
  		}
  	}
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/logger.h open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/logger.h
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/logger.h	2011-01-29 23:47:49.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/logger.h	2010-12-16 11:56:16.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/logger.h open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/logger.h
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/logger.h	2010-05-20 20:16:05.000000000 -0500
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/logger.h	2011-04-02 05:32:57.000000000 -0500
 @@ -89,10 +89,7 @@ extern struct logger main_log;
  
  int init_logger(char *);
@@ -137303,9 +137576,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/logger.h o
  
  #define CLOSE_LOGGER    0x01
  #define SHUTDOWN_LOGGER 0x02
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/main.c open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/main.c
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/main.c	2011-01-29 23:47:49.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/main.c	2010-12-16 11:56:16.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/main.c open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/main.c
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/main.c	2010-05-20 20:16:05.000000000 -0500
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/main.c	2011-04-02 05:32:57.000000000 -0500
 @@ -45,6 +45,7 @@
  #include <unistd.h>
  #include <sys/types.h>
@@ -137515,9 +137788,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/main.c ope
  	/*  NetLink connection to listen to NETLINK_ISCSI private messages */
  	nic_nl_open();
  
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/Makefile open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/Makefile
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/Makefile	1969-12-31 18:00:00.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/Makefile	2010-12-16 19:34:45.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/Makefile open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/Makefile
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/Makefile	1969-12-31 18:00:00.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/Makefile	2011-04-02 05:32:57.000000000 -0500
 @@ -0,0 +1,771 @@
 +# Makefile.in generated by automake 1.9.6 from Makefile.am.
 +# src/unix/Makefile.  Generated from Makefile.in by configure.
@@ -138290,9 +138563,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/Makefile o
 +# Tell versions [3.59,3.63) of GNU make to not export all variables.
 +# Otherwise a system limit (for SysV at least) may be exceeded.
 +.NOEXPORT:
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/Makefile.am open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/Makefile.am
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/Makefile.am	2011-01-29 23:47:49.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/Makefile.am	2010-12-16 11:56:16.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/Makefile.am open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/Makefile.am
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/Makefile.am	2010-05-20 20:16:05.000000000 -0500
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/Makefile.am	2011-04-02 05:32:57.000000000 -0500
 @@ -12,7 +12,6 @@ brcm_iscsiuio_SOURCES =	build_date.c		\
  			main.c			\
  			clock-arch.c		\
@@ -138301,9 +138574,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/Makefile.a
  			nic.c			\
  			nic_id.c		\
  			nic_vlan.c		\
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/Makefile.in open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/Makefile.in
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/Makefile.in	2011-01-29 23:47:49.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/Makefile.in	2010-12-16 15:51:29.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/Makefile.in open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/Makefile.in
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/Makefile.in	2010-05-20 20:16:05.000000000 -0500
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/Makefile.in	2011-04-02 05:32:57.000000000 -0500
 @@ -1,8 +1,8 @@
 -# Makefile.in generated by automake 1.10.2 from Makefile.am.
 +# Makefile.in generated by automake 1.9.6 from Makefile.am.
@@ -138990,9 +139263,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/Makefile.i
  
  # Tell versions [3.59,3.63) of GNU make to not export all variables.
  # Otherwise a system limit (for SysV at least) may be exceeded.
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/nic.c open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/nic.c
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/nic.c	2011-01-29 23:47:49.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/nic.c	2010-12-21 16:05:41.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/nic.c open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/nic.c
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/nic.c	2010-05-20 20:16:05.000000000 -0500
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/nic.c	2011-04-02 05:32:57.000000000 -0500
 @@ -19,6 +19,8 @@
  #include <unistd.h>
  #include <sys/socket.h>
@@ -140012,9 +140285,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/nic.c open
  
  	pthread_exit(NULL);
  }
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/nic.h open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/nic.h
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/nic.h	2011-01-29 23:47:49.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/nic.h	2010-12-16 11:56:16.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/nic.h open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/nic.h
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/nic.h	2010-05-20 20:16:05.000000000 -0500
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/nic.h	2011-04-02 05:33:11.000000000 -0500
 @@ -21,6 +21,7 @@
  #include <stdlib.h>
  #include <pthread.h>
@@ -140046,6 +140319,15 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/nic.h open
  	uint8_t		mac_addr[ETH_ALEN];
  	uint8_t		vlan_priority;
  	uint16_t	vlan_id;
+@@ -144,7 +148,7 @@ typedef struct nic_ops {
+ 	int (*write)(struct nic *, nic_interface_t *,
+ 		     struct packet *);
+ 	void * (*get_tx_pkt)(struct nic *);
+-	void (*start_xmit)(struct nic *, size_t);
++	void (*start_xmit)(struct nic *, size_t, u16_t);
+ 	int (*clear_tx_intr)(struct nic *);
+ 	int (*handle_iscsi_path_req)(struct nic *,
+ 				     int,
 @@ -163,7 +167,7 @@ typedef struct nic_lib_handle {
  typedef struct nic {
  	struct nic *next;
@@ -140115,9 +140397,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/nic.h open
  int enable_multicast(nic_t *nic);
  int disable_multicast(nic_t *nic);
  
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/nic_id.c open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/nic_id.c
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/nic_id.c	2011-01-29 23:47:49.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/nic_id.c	2010-12-16 11:56:16.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/nic_id.c open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/nic_id.c
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/nic_id.c	2010-05-20 20:16:05.000000000 -0500
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/nic_id.c	2011-04-02 05:32:57.000000000 -0500
 @@ -55,8 +55,7 @@ static int get_id(nic_t *nic,
  
  	path_size = sysfs_template_size + 4;
@@ -140327,9 +140609,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/nic_id.c o
  		LOG_WARN(PFX "%s: Couldn't find proper NIC library",
  			 nic->log_name);
  		return rc;
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/nic_nl.c open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/nic_nl.c
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/nic_nl.c	2011-01-29 23:47:49.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/nic_nl.c	2010-12-16 11:56:16.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/nic_nl.c open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/nic_nl.c
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/nic_nl.c	2010-05-20 20:16:05.000000000 -0500
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/nic_nl.c	2011-04-02 05:32:57.000000000 -0500
 @@ -31,7 +31,6 @@
  #include "uip_arp.h"
  #include "logger.h"
@@ -140958,9 +141240,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/nic_nl.c o
 -
  	return 0;
  }
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/nic_nl.h open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/nic_nl.h
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/nic_nl.h	2011-01-29 23:47:49.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/nic_nl.h	2010-12-16 11:56:16.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/nic_nl.h open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/nic_nl.h
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/nic_nl.h	2010-05-20 20:16:05.000000000 -0500
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/nic_nl.h	2011-04-02 05:32:57.000000000 -0500
 @@ -12,9 +12,15 @@
  #ifndef __NIC_NL_H__
  #define __NIC_NL_H__
@@ -140977,9 +141259,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/nic_nl.h o
 +extern int nl_process_if_down;
 +
  #endif /* __NIC_NL_H__ */
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/nic_utils.c open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/nic_utils.c
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/nic_utils.c	2011-01-29 23:47:49.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/nic_utils.c	2010-12-16 11:56:16.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/nic_utils.c open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/nic_utils.c
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/nic_utils.c	2010-05-20 20:16:05.000000000 -0500
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/nic_utils.c	2011-04-02 05:33:11.000000000 -0500
 @@ -43,19 +43,113 @@ static const char uio_name[] = "uio";
  
  static const char uio_base_dir[] = "/dev/uio";
@@ -141851,28 +142133,32 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/nic_utils.
  		nic->tx_packet_queue = pkt->next;
  		pkt->next = NULL;
  	}
-@@ -1132,8 +1184,7 @@ void nic_fill_ethernet_header(nic_interf
+@@ -1131,23 +1183,7 @@ void nic_fill_ethernet_header(nic_interf
+ 	memcpy(eth->ether_dhost, dest_addr, ETH_ALEN);
  
  	vlan_hdr = (uint16_t *)(eth + 1);
- 	/*  Determine if we need to insert the VLAN tag */
+-	/*  Determine if we need to insert the VLAN tag */
 -	if(nic_iface->vlan_id != 0)
 -	{
-+	if (nic_iface->vlan_id != 0) {
- 		uint16_t insert_tpid = htons(ether_type);
- 		uint16_t insert_vlan_id = htons((0x0FFF & nic_iface->vlan_id) +
- 			  ((0x000F & nic_iface->vlan_priority) << 12));
-@@ -1145,9 +1196,8 @@ void nic_fill_ethernet_header(nic_interf
- 
- 		*pkt_size = *pkt_size + 4;
- 		eth->ether_type = htons(ETHERTYPE_VLAN);
+-		uint16_t insert_tpid = htons(ether_type);
+-		uint16_t insert_vlan_id = htons((0x0FFF & nic_iface->vlan_id) +
+-			  ((0x000F & nic_iface->vlan_priority) << 12));
+-
+-		memcpy(vlan_hdr, &insert_vlan_id, 2);
+-		vlan_hdr++;
+-		memcpy(vlan_hdr, &insert_tpid, 2);
+-		vlan_hdr++;
+-
+-		*pkt_size = *pkt_size + 4;
+-		eth->ether_type = htons(ETHERTYPE_VLAN);
 -	} else {
-+	} else
- 		eth->ether_type = htons(ether_type);
+-		eth->ether_type = htons(ether_type);
 -	}
++	eth->ether_type = htons(ether_type);
  
  	*start_addr = vlan_hdr;
  }
-@@ -1172,10 +1222,8 @@ nic_interface_t * nic_find_nic_iface(nic
+@@ -1172,10 +1208,8 @@ nic_interface_t * nic_find_nic_iface(nic
  	pthread_mutex_lock(&nic->nic_mutex);
  
  	current = nic->nic_iface;
@@ -141885,7 +142171,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/nic_utils.
  			pthread_mutex_unlock(&nic->nic_mutex);
  			return current;
  		}
-@@ -1206,11 +1254,9 @@ nic_interface_t * nic_find_nic_iface_pro
+@@ -1206,11 +1240,9 @@ nic_interface_t * nic_find_nic_iface_pro
  	pthread_mutex_lock(&nic->nic_mutex);
  
  	current = nic->nic_iface;
@@ -141899,7 +142185,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/nic_utils.
  			pthread_mutex_unlock(&nic->nic_mutex);
  			return current;
  		}
-@@ -1223,6 +1269,22 @@ nic_interface_t * nic_find_nic_iface_pro
+@@ -1223,6 +1255,22 @@ nic_interface_t * nic_find_nic_iface_pro
  	return NULL;
  }
  
@@ -141922,7 +142208,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/nic_utils.
  /*******************************************************************************
   *  Packet management utility functions
   ******************************************************************************/
-@@ -1236,7 +1298,7 @@ static packet_t * get_next_packet_in_que
+@@ -1236,7 +1284,7 @@ static packet_t * get_next_packet_in_que
  {
  	packet_t *pkt;
  
@@ -141931,7 +142217,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/nic_utils.
  		return NULL;
  
  	pkt = *queue;
-@@ -1285,9 +1347,9 @@ packet_t * get_next_free_packet(nic_t *n
+@@ -1285,9 +1333,9 @@ packet_t * get_next_free_packet(nic_t *n
  static void put_packet_in_queue(packet_t *pkt,
  				packet_t **queue)
  {
@@ -141943,7 +142229,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/nic_utils.
  		pkt->next = *queue;
  		*queue = pkt;
  	}
-@@ -1398,21 +1460,21 @@ int determine_file_size_read(const char 
+@@ -1398,21 +1446,21 @@ int determine_file_size_read(const char 
  	char buf[1024];
  
  	fd = open(filepath, O_RDONLY);
@@ -141972,7 +142258,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/nic_utils.
  			total_size = -1;
  			break;
  		default:
-@@ -1442,22 +1504,21 @@ int capture_file(char **raw, uint32_t *r
+@@ -1442,22 +1490,21 @@ int capture_file(char **raw, uint32_t *r
  	int file_size;
  
  	file_size = determine_file_size_read(path);
@@ -142000,7 +142286,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/nic_utils.
  		LOG_ERR("Could not malloc space for capture %s",
  			path);
  		rc = -ENOMEM;
-@@ -1465,17 +1526,15 @@ int capture_file(char **raw, uint32_t *r
+@@ -1465,17 +1512,15 @@ int capture_file(char **raw, uint32_t *r
  	}
  
  	read_size = fread(*raw, file_size, 1, fp);
@@ -142023,9 +142309,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/nic_utils.
  error:
  	fclose(fp);
  
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/nic_utils.h open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/nic_utils.h
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/nic_utils.h	2011-01-29 23:47:49.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/nic_utils.h	2010-12-16 11:56:16.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/nic_utils.h open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/nic_utils.h
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/nic_utils.h	2010-05-20 20:16:05.000000000 -0500
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/nic_utils.h	2011-04-02 05:32:57.000000000 -0500
 @@ -16,6 +16,8 @@
  /******************************************************************************
   * Function Prototype
@@ -142072,9 +142358,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/nic_utils.
  
  void dump_packet_to_log(struct nic_interface *iface,
  			uint8_t *buf, uint16_t buf_len);
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/options.h open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/options.h
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/options.h	2011-01-29 23:47:49.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/options.h	2010-12-16 11:56:16.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/options.h open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/options.h
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/options.h	2010-05-20 20:16:05.000000000 -0500
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/options.h	2011-04-02 05:32:57.000000000 -0500
 @@ -1,4 +1,4 @@
 -/* options.c: CNIC UIO uIP user space stack
 +/* options.h: CNIC UIO uIP user space stack
@@ -142110,9 +142396,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/options.h
  /******************************************************************************
   * Non adjustable constants
   *****************************************************************************/
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/uevent.c open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/uevent.c
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/uevent.c	2011-01-29 23:47:49.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/uevent.c	1969-12-31 18:00:00.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/uevent.c open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/uevent.c
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/uevent.c	2010-05-20 20:16:05.000000000 -0500
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/uevent.c	1969-12-31 18:00:00.000000000 -0600
 @@ -1,578 +0,0 @@
 -/* uevent.c: CNIC UIO uIP user space stack
 - *
@@ -142692,9 +142978,9 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/uevent.c o
 -
 -	return 0;
 -}
-diff -Naurp open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/uevent.h open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/uevent.h
---- open-iscsi-2.0-872-rc4-bnx2i.base/brcm_iscsi_uio/src/unix/uevent.h	2011-01-29 23:47:49.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/uevent.h	1969-12-31 18:00:00.000000000 -0600
+diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/uevent.h open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/uevent.h
+--- open-iscsi-2.0-872-rc4-bnx2i/brcm_iscsi_uio/src/unix/uevent.h	2010-05-20 20:16:06.000000000 -0500
++++ open-iscsi-2.0-872-rc4-bnx2i.work/brcm_iscsi_uio/src/unix/uevent.h	1969-12-31 18:00:00.000000000 -0600
 @@ -1,54 +0,0 @@
 -/* uevent.h: CNIC UIO uIP user space stack
 - *
diff --git a/iscsi-initiator-utils.spec b/iscsi-initiator-utils.spec
index 130a32a..7e26211 100644
--- a/iscsi-initiator-utils.spec
+++ b/iscsi-initiator-utils.spec
@@ -9,8 +9,8 @@ Source1: iscsid.init
 Source2: iscsidevs.init
 Source3: 04-iscsi
 
-# sync brcm to 0.6.2.13
-Patch0: iscsi-initiator-utils-sync-brcm-0.6.2.13.patch
+# sync brcm to 0.6.2.14
+Patch0: iscsi-initiator-utils-sync-brcm-0.6.2.14.patch
 # sync iscsi tools to upstream commit 6a9fc9ff0f49eac37da86847268dda437609f1d4
 Patch1: iscsi-initiator-utils-sync-iscsi.patch
 # Add Red Hat specific info to docs.
@@ -39,6 +39,10 @@ Patch12: iscsi-initiator-utils-brcm-man.patch
 Patch13: iscsi-initiator-utils-dcb.patch
 # libiscsi: nodes remember their interface
 Patch14: iscsi-initiator-utils-libiscsi-nodes-remember-the-interface.patch
+# Upstream commit from 9803f14e172c560b0120689cd91945f166c2f07e to
+# fcd08dfbd02a279ffa69618a5216f6cf4f88e1da (will be rolled into rebase next
+# release)
+Patch15: iscsi-initiator-utils-fixes.patch
 
 Group: System Environment/Daemons
 License: GPLv2+
@@ -66,7 +70,7 @@ developing applications that use %{name}.
 
 %prep
 %setup -q -n open-iscsi-2.0-872-rc4-bnx2i
-%patch0 -p1 -b .sync-brcm-0.6.2.13
+%patch0 -p1 -b .sync-brcm-0.6.2.14
 %patch1 -p1 -b .sync-iscsi
 %patch2 -p1 -b .update-initscripts-and-docs
 %patch3 -p1 -b .use-var-for-config
@@ -81,7 +85,7 @@ developing applications that use %{name}.
 %patch12 -p1 -b .brcm-man
 %patch13 -p1 -b .dcb
 %patch14 -p1 -b .libiscsi-remember-the-interface
-
+%patch15 -p1 -b .fixes
 
 %build
 cd utils/open-isns
@@ -201,8 +205,11 @@ fi
 
 %changelog
 * Thu Feb 24 2011 Mike Christie <mcrhsit at redhat.com> 6.2.0.872.18
-- 677148 fix iscsiadm exit code when iscsid is not running and the
+- fix iscsiadm exit code when iscsid is not running and the
 discovery command is run.
+- 689359 Fix uIP when using DCB for FCoE
+- 691902 Fix iscsiadm SendTargets offload support when the PDU's data len
+is 8K. 
 
 * Sat Feb 19 2011 Mike Christie <mcrhsit at redhat.com> 6.2.0.872.17
 - 634021 Fix in .14 added regression during iscsi startup that prevented


More information about the scm-commits mailing list