Blame SOURCES/0023-ISCSIUIO-Updated-iscsiuio-to-version-0.7.8.1b-for-pe.patch

6c64be
From 669d4aeb6103c236e7cba94bbbb3c3098f8b4b15 Mon Sep 17 00:00:00 2001
6c64be
From: Eddie Wai <eddie.wai@broadcom.com>
6c64be
Date: Wed, 19 Jun 2013 14:48:27 -0700
6c64be
Subject: ISCSIUIO: Updated iscsiuio to version 0.7.8.1b for perf optimization
6c64be
6c64be
uIP v0.7.8.1b (May 01, 2013)
6c64be
=======================================================
6c64be
   Enhancements
6c64be
   ------------
6c64be
   1. Change:  Performance optimization by caching the page size
6c64be
      Impact:  All
6c64be
6c64be
   2. Change:  Fixed a bug in the tx completion interrupt handler
6c64be
      Impact:  10G only
6c64be
6c64be
Signed-off-by: Eddie Wai <eddie.wai@broadcom.com>
6c64be
---
6c64be
 iscsiuio/README                |   9 ++-
6c64be
 iscsiuio/RELEASE.TXT           |  15 ++++-
6c64be
 iscsiuio/configure             | 124 ++++++++++++++++++++---------------------
6c64be
 iscsiuio/configure.ac          |   4 +-
6c64be
 iscsiuio/docs/iscsiuio.8       |   8 +--
6c64be
 iscsiuio/src/unix/libs/bnx2.c  |  14 ++---
6c64be
 iscsiuio/src/unix/libs/bnx2x.c |  19 ++++---
6c64be
 iscsiuio/src/unix/nic.c        |   1 +
6c64be
 iscsiuio/src/unix/nic.h        |   6 +-
6c64be
 9 files changed, 108 insertions(+), 92 deletions(-)
6c64be
6c64be
diff --git a/iscsiuio/README b/iscsiuio/README
6c64be
index 1a6386f..e7e5fe4 100644
6c64be
--- a/iscsiuio/README
6c64be
+++ b/iscsiuio/README
6c64be
@@ -1,6 +1,6 @@
6c64be
 Iscsiuio Userspace Tool
6c64be
-Version 0.7.6.1g
6c64be
-Jan 14, 2013
6c64be
+Version 0.7.8.1b
6c64be
+May 01, 2013
6c64be
 ------------------------------------------------------
6c64be
 
6c64be
 This tool is to be used in conjunction with the Broadcom NetXtreme II Linux
6c64be
@@ -189,9 +189,8 @@ To run the daemon in debug mode please pass the parameter  '-d <debug level>'
6c64be
 
6c64be
 where the following debug levels are defined:
6c64be
 
6c64be
-PACKET        5 - Print all messages
6c64be
-DEBUG         4 - Print debug messages
6c64be
-INFO          3 - Print messages needed to follow the uIP code
6c64be
+DEBUG         4 - Print all messages
6c64be
+INFO          3 - Print messages needed to follow the uIP code (default)
6c64be
 WARN          2 - Print warning messages
6c64be
 ERROR         1 - Only print critical errors
6c64be
 
6c64be
diff --git a/iscsiuio/RELEASE.TXT b/iscsiuio/RELEASE.TXT
6c64be
index 2fa19bb..de70667 100644
6c64be
--- a/iscsiuio/RELEASE.TXT
6c64be
+++ b/iscsiuio/RELEASE.TXT
6c64be
@@ -1,7 +1,7 @@
6c64be
                               Release Notes
6c64be
                         Broadcom uIP Linux Driver
6c64be
-                            Version 0.7.6.1g
6c64be
-                               01/14/2013
6c64be
+                            Version 0.7.8.1b
6c64be
+                               05/01/2013
6c64be
 
6c64be
                           Broadcom Corporation
6c64be
                          5300 California Avenue,
6c64be
@@ -10,6 +10,16 @@
6c64be
                Copyright (c) 2004 - 2013 Broadcom Corporation
6c64be
                            All rights reserved
6c64be
 
6c64be
+uIP v0.7.8.1b (May 01, 2013)
6c64be
+=======================================================
6c64be
+   Enhancements
6c64be
+   ------------
6c64be
+   1. Change:  Performance optimization by caching the page size
6c64be
+      Impact:  All
6c64be
+
6c64be
+   2. Change:  Fixed a bug in the tx completion interrupt handler
6c64be
+      Impact:  10G only
6c64be
+
6c64be
 
6c64be
 uIP v0.7.6.1g (Jan 14, 2013)
6c64be
 =======================================================
6c64be
@@ -1986,3 +1996,4 @@ uIP v0.5.0b (Nov 24, 2009)
6c64be
    1. Change: Add Broadcom 10G iSCSI offload support
6c64be
 
6c64be
       Impact: Linux
6c64be
+
6c64be
diff --git a/iscsiuio/configure b/iscsiuio/configure
6c64be
index 1852551..2740598 100755
6c64be
--- a/iscsiuio/configure
6c64be
+++ b/iscsiuio/configure
6c64be
@@ -1,6 +1,6 @@
6c64be
 #! /bin/sh
6c64be
 # Guess values for system-dependent variables and create Makefiles.
6c64be
-# Generated by GNU Autoconf 2.59 for iscsiuio 0.7.6.1g.
6c64be
+# Generated by GNU Autoconf 2.59 for iscsiuio 0.7.8.1b.
6c64be
 #
6c64be
 # Report bugs to <eddie.wai@broadcom.com>.
6c64be
 #
6c64be
@@ -72,9 +72,9 @@ $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
6c64be
 	 .     : '\(.\)' 2>/dev/null ||
6c64be
 echo X/"$0" |
6c64be
     sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
6c64be
-	  /^X\/\(\/\/\)$/{ s//\1/; q; }
6c64be
-	  /^X\/\(\/\).*/{ s//\1/; q; }
6c64be
-	  s/.*/./; q'`
6c64be
+  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
6c64be
+  	  /^X\/\(\/\).*/{ s//\1/; q; }
6c64be
+  	  s/.*/./; q'`
6c64be
 
6c64be
 
6c64be
 # PATH needs CR, and LINENO needs CR and PATH.
6c64be
@@ -423,8 +423,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
6c64be
 # Identity of this package.
6c64be
 PACKAGE_NAME='iscsiuio'
6c64be
 PACKAGE_TARNAME='iscsiuio'
6c64be
-PACKAGE_VERSION='0.7.6.1g'
6c64be
-PACKAGE_STRING='iscsiuio 0.7.6.1g'
6c64be
+PACKAGE_VERSION='0.7.8.1b'
6c64be
+PACKAGE_STRING='iscsiuio 0.7.8.1b'
6c64be
 PACKAGE_BUGREPORT='eddie.wai@broadcom.com'
6c64be
 
6c64be
 # Factoring default headers for most tests.
6c64be
@@ -870,10 +870,10 @@ $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
6c64be
 	 .     : '\(.\)' 2>/dev/null ||
6c64be
 echo X"$0" |
6c64be
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
6c64be
-	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
6c64be
-	  /^X\(\/\/\)$/{ s//\1/; q; }
6c64be
-	  /^X\(\/\).*/{ s//\1/; q; }
6c64be
-	  s/.*/./; q'`
6c64be
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
6c64be
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
6c64be
+  	  /^X\(\/\).*/{ s//\1/; q; }
6c64be
+  	  s/.*/./; q'`
6c64be
   srcdir=$ac_confdir
6c64be
   if test ! -r $srcdir/$ac_unique_file; then
6c64be
     srcdir=..
6c64be
@@ -954,7 +954,7 @@ if test "$ac_init_help" = "long"; then
6c64be
   # Omit some internal or obsolete options to make the list less imposing.
6c64be
   # This message is too long to be a string in the A/UX 3.1 sh.
6c64be
   cat <<_ACEOF
6c64be
-\`configure' configures iscsiuio 0.7.6.1g to adapt to many kinds of systems.
6c64be
+\`configure' configures iscsiuio 0.7.8.1b to adapt to many kinds of systems.
6c64be
 
6c64be
 Usage: $0 [OPTION]... [VAR=VALUE]...
6c64be
 
6c64be
@@ -1020,7 +1020,7 @@ fi
6c64be
 
6c64be
 if test -n "$ac_init_help"; then
6c64be
   case $ac_init_help in
6c64be
-     short | recursive ) echo "Configuration of iscsiuio 0.7.6.1g:";;
6c64be
+     short | recursive ) echo "Configuration of iscsiuio 0.7.8.1b:";;
6c64be
    esac
6c64be
   cat <<\_ACEOF
6c64be
 
6c64be
@@ -1160,7 +1160,7 @@ fi
6c64be
 test -n "$ac_init_help" && exit 0
6c64be
 if $ac_init_version; then
6c64be
   cat <<\_ACEOF
6c64be
-iscsiuio configure 0.7.6.1g
6c64be
+iscsiuio configure 0.7.8.1b
6c64be
 generated by GNU Autoconf 2.59
6c64be
 
6c64be
 Copyright (C) 2003 Free Software Foundation, Inc.
6c64be
@@ -1174,7 +1174,7 @@ cat >&5 <<_ACEOF
6c64be
 This file contains any messages produced by compilers while
6c64be
 running configure, to aid debugging if configure makes a mistake.
6c64be
 
6c64be
-It was created by iscsiuio $as_me 0.7.6.1g, which was
6c64be
+It was created by iscsiuio $as_me 0.7.8.1b, which was
6c64be
 generated by GNU Autoconf 2.59.  Invocation command line was
6c64be
 
6c64be
   $ $0 $@
6c64be
@@ -11743,7 +11743,7 @@ echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6
6c64be
 if test "${lt_cv_dlopen_self+set}" = set; then
6c64be
   echo $ECHO_N "(cached) $ECHO_C" >&6
6c64be
 else
6c64be
-	  if test "$cross_compiling" = yes; then :
6c64be
+  	  if test "$cross_compiling" = yes; then :
6c64be
   lt_cv_dlopen_self=cross
6c64be
 else
6c64be
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
6c64be
@@ -11843,7 +11843,7 @@ echo $ECHO_N "checking whether a statically linked program can dlopen itself...
6c64be
 if test "${lt_cv_dlopen_self_static+set}" = set; then
6c64be
   echo $ECHO_N "(cached) $ECHO_C" >&6
6c64be
 else
6c64be
-	  if test "$cross_compiling" = yes; then :
6c64be
+  	  if test "$cross_compiling" = yes; then :
6c64be
   lt_cv_dlopen_self_static=cross
6c64be
 else
6c64be
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
6c64be
@@ -21519,9 +21519,9 @@ $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
6c64be
 	 .     : '\(.\)' 2>/dev/null ||
6c64be
 echo X/"$0" |
6c64be
     sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
6c64be
-	  /^X\/\(\/\/\)$/{ s//\1/; q; }
6c64be
-	  /^X\/\(\/\).*/{ s//\1/; q; }
6c64be
-	  s/.*/./; q'`
6c64be
+  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
6c64be
+  	  /^X\/\(\/\).*/{ s//\1/; q; }
6c64be
+  	  s/.*/./; q'`
6c64be
 
6c64be
 
6c64be
 # PATH needs CR, and LINENO needs CR and PATH.
6c64be
@@ -21705,7 +21705,7 @@ _ASBOX
6c64be
 } >&5
6c64be
 cat >&5 <<_CSEOF
6c64be
 
6c64be
-This file was extended by iscsiuio $as_me 0.7.6.1g, which was
6c64be
+This file was extended by iscsiuio $as_me 0.7.8.1b, which was
6c64be
 generated by GNU Autoconf 2.59.  Invocation command line was
6c64be
 
6c64be
   CONFIG_FILES    = $CONFIG_FILES
6c64be
@@ -21768,7 +21768,7 @@ _ACEOF
6c64be
 
6c64be
 cat >>$CONFIG_STATUS <<_ACEOF
6c64be
 ac_cs_version="\\
6c64be
-iscsiuio config.status 0.7.6.1g
6c64be
+iscsiuio config.status 0.7.8.1b
6c64be
 configured by $0, generated by GNU Autoconf 2.59,
6c64be
   with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
6c64be
 
6c64be
@@ -22113,10 +22113,10 @@ $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
6c64be
 	 .     : '\(.\)' 2>/dev/null ||
6c64be
 echo X"$ac_file" |
6c64be
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
6c64be
-	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
6c64be
-	  /^X\(\/\/\)$/{ s//\1/; q; }
6c64be
-	  /^X\(\/\).*/{ s//\1/; q; }
6c64be
-	  s/.*/./; q'`
6c64be
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
6c64be
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
6c64be
+  	  /^X\(\/\).*/{ s//\1/; q; }
6c64be
+  	  s/.*/./; q'`
6c64be
   { if $as_mkdir_p; then
6c64be
     mkdir -p "$ac_dir"
6c64be
   else
6c64be
@@ -22132,10 +22132,10 @@ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
6c64be
 	 .     : '\(.\)' 2>/dev/null ||
6c64be
 echo X"$as_dir" |
6c64be
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
6c64be
-	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
6c64be
-	  /^X\(\/\/\)$/{ s//\1/; q; }
6c64be
-	  /^X\(\/\).*/{ s//\1/; q; }
6c64be
-	  s/.*/./; q'`
6c64be
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
6c64be
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
6c64be
+  	  /^X\(\/\).*/{ s//\1/; q; }
6c64be
+  	  s/.*/./; q'`
6c64be
     done
6c64be
     test ! -n "$as_dirs" || mkdir $as_dirs
6c64be
   fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
6c64be
@@ -22470,10 +22470,10 @@ $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
6c64be
 	 .     : '\(.\)' 2>/dev/null ||
6c64be
 echo X"$ac_file" |
6c64be
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
6c64be
-	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
6c64be
-	  /^X\(\/\/\)$/{ s//\1/; q; }
6c64be
-	  /^X\(\/\).*/{ s//\1/; q; }
6c64be
-	  s/.*/./; q'`
6c64be
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
6c64be
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
6c64be
+  	  /^X\(\/\).*/{ s//\1/; q; }
6c64be
+  	  s/.*/./; q'`
6c64be
       { if $as_mkdir_p; then
6c64be
     mkdir -p "$ac_dir"
6c64be
   else
6c64be
@@ -22489,10 +22489,10 @@ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
6c64be
 	 .     : '\(.\)' 2>/dev/null ||
6c64be
 echo X"$as_dir" |
6c64be
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
6c64be
-	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
6c64be
-	  /^X\(\/\/\)$/{ s//\1/; q; }
6c64be
-	  /^X\(\/\).*/{ s//\1/; q; }
6c64be
-	  s/.*/./; q'`
6c64be
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
6c64be
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
6c64be
+  	  /^X\(\/\).*/{ s//\1/; q; }
6c64be
+  	  s/.*/./; q'`
6c64be
     done
6c64be
     test ! -n "$as_dirs" || mkdir $as_dirs
6c64be
   fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
6c64be
@@ -22524,10 +22524,10 @@ $as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
6c64be
 	 .     : '\(.\)' 2>/dev/null ||
6c64be
 echo X$ac_file |
6c64be
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
6c64be
-	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
6c64be
-	  /^X\(\/\/\)$/{ s//\1/; q; }
6c64be
-	  /^X\(\/\).*/{ s//\1/; q; }
6c64be
-	  s/.*/./; q'`/stamp-h$_am_stamp_count
6c64be
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
6c64be
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
6c64be
+  	  /^X\(\/\).*/{ s//\1/; q; }
6c64be
+  	  s/.*/./; q'`/stamp-h$_am_stamp_count
6c64be
 done
6c64be
 _ACEOF
6c64be
 cat >>$CONFIG_STATUS <<\_ACEOF
6c64be
@@ -22546,10 +22546,10 @@ $as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
6c64be
 	 .     : '\(.\)' 2>/dev/null ||
6c64be
 echo X"$ac_dest" |
6c64be
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
6c64be
-	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
6c64be
-	  /^X\(\/\/\)$/{ s//\1/; q; }
6c64be
-	  /^X\(\/\).*/{ s//\1/; q; }
6c64be
-	  s/.*/./; q'`
6c64be
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
6c64be
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
6c64be
+  	  /^X\(\/\).*/{ s//\1/; q; }
6c64be
+  	  s/.*/./; q'`
6c64be
   { if $as_mkdir_p; then
6c64be
     mkdir -p "$ac_dir"
6c64be
   else
6c64be
@@ -22565,10 +22565,10 @@ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
6c64be
 	 .     : '\(.\)' 2>/dev/null ||
6c64be
 echo X"$as_dir" |
6c64be
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
6c64be
-	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
6c64be
-	  /^X\(\/\/\)$/{ s//\1/; q; }
6c64be
-	  /^X\(\/\).*/{ s//\1/; q; }
6c64be
-	  s/.*/./; q'`
6c64be
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
6c64be
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
6c64be
+  	  /^X\(\/\).*/{ s//\1/; q; }
6c64be
+  	  s/.*/./; q'`
6c64be
     done
6c64be
     test ! -n "$as_dirs" || mkdir $as_dirs
6c64be
   fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
6c64be
@@ -22662,10 +22662,10 @@ $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
6c64be
 	 .     : '\(.\)' 2>/dev/null ||
6c64be
 echo X"$mf" |
6c64be
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
6c64be
-	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
6c64be
-	  /^X\(\/\/\)$/{ s//\1/; q; }
6c64be
-	  /^X\(\/\).*/{ s//\1/; q; }
6c64be
-	  s/.*/./; q'`
6c64be
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
6c64be
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
6c64be
+  	  /^X\(\/\).*/{ s//\1/; q; }
6c64be
+  	  s/.*/./; q'`
6c64be
   else
6c64be
     continue
6c64be
   fi
6c64be
@@ -22695,10 +22695,10 @@ $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
6c64be
 	 .     : '\(.\)' 2>/dev/null ||
6c64be
 echo X"$file" |
6c64be
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
6c64be
-	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
6c64be
-	  /^X\(\/\/\)$/{ s//\1/; q; }
6c64be
-	  /^X\(\/\).*/{ s//\1/; q; }
6c64be
-	  s/.*/./; q'`
6c64be
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
6c64be
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
6c64be
+  	  /^X\(\/\).*/{ s//\1/; q; }
6c64be
+  	  s/.*/./; q'`
6c64be
     { if $as_mkdir_p; then
6c64be
     mkdir -p $dirpart/$fdir
6c64be
   else
6c64be
@@ -22714,10 +22714,10 @@ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
6c64be
 	 .     : '\(.\)' 2>/dev/null ||
6c64be
 echo X"$as_dir" |
6c64be
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
6c64be
-	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
6c64be
-	  /^X\(\/\/\)$/{ s//\1/; q; }
6c64be
-	  /^X\(\/\).*/{ s//\1/; q; }
6c64be
-	  s/.*/./; q'`
6c64be
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
6c64be
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
6c64be
+  	  /^X\(\/\).*/{ s//\1/; q; }
6c64be
+  	  s/.*/./; q'`
6c64be
     done
6c64be
     test ! -n "$as_dirs" || mkdir $as_dirs
6c64be
   fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5
6c64be
@@ -22762,4 +22762,4 @@ if test "$no_create" != yes; then
6c64be
   # would make configure fail if this is the last instruction.
6c64be
   $ac_cs_success || { (exit 1); exit 1; }
6c64be
 fi
6c64be
-#
6c64be
+
6c64be
diff --git a/iscsiuio/configure.ac b/iscsiuio/configure.ac
6c64be
index 34f0481..e9a5e32 100644
6c64be
--- a/iscsiuio/configure.ac
6c64be
+++ b/iscsiuio/configure.ac
6c64be
@@ -11,9 +11,9 @@ dnl             Benjamin Li  (benli@broadcom.com)
6c64be
 dnl
6c64be
 
6c64be
 PACKAGE=iscsiuio
6c64be
-VERSION=0.7.6.1g
6c64be
+VERSION=0.7.8.1b
6c64be
 
6c64be
-AC_INIT(iscsiuio, 0.7.6.1g, eddie.wai@broadcom.com)
6c64be
+AC_INIT(iscsiuio, 0.7.8.1b, eddie.wai@broadcom.com)
6c64be
 
6c64be
 AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
6c64be
 AC_CONFIG_HEADER(config.h)
6c64be
diff --git a/iscsiuio/docs/iscsiuio.8 b/iscsiuio/docs/iscsiuio.8
6c64be
index 2f577bc..ea21d78 100644
6c64be
--- a/iscsiuio/docs/iscsiuio.8
6c64be
+++ b/iscsiuio/docs/iscsiuio.8
6c64be
@@ -3,9 +3,9 @@
6c64be
 .\" modify it under the terms of the GNU General Public License as
6c64be
 .\" published by the Free Software Foundation.
6c64be
 .\"
6c64be
-.\" bnx2.4,v 0.7.6.1g
6c64be
+.\" bnx2.4,v 0.7.8.1b
6c64be
 .\"
6c64be
-.TH iscsiuio 8 "01/14/2013" "Broadcom Corporation"
6c64be
+.TH iscsiuio 8 "05/01/2013" "Broadcom Corporation"
6c64be
 .\"
6c64be
 .\" NAME part
6c64be
 .\"
6c64be
@@ -81,6 +81,6 @@ Display this help and exit.
6c64be
 .\" AUTHOR part
6c64be
 .\"
6c64be
 .SH AUTHOR
6c64be
-Eddie Wai \- eddie.wai@broadcom.com
6c64be
-.P
6c64be
 Benjamin Li \- benli@broadcom.com
6c64be
+.P
6c64be
+Eddie Wai \- eddie.wai@broadcom.com
6c64be
diff --git a/iscsiuio/src/unix/libs/bnx2.c b/iscsiuio/src/unix/libs/bnx2.c
6c64be
index b72b8ce..91c44e5 100644
6c64be
--- a/iscsiuio/src/unix/libs/bnx2.c
6c64be
+++ b/iscsiuio/src/unix/libs/bnx2.c
6c64be
@@ -576,7 +576,7 @@ static int bnx2_open(nic_t *nic)
6c64be
 
6c64be
 	bp->sblk_map = mmap(NULL, bp->status_blk_size,
6c64be
 			    PROT_READ | PROT_WRITE, MAP_SHARED,
6c64be
-			    nic->fd, (off_t) getpagesize());
6c64be
+			    nic->fd, (off_t) nic->page_size);
6c64be
 	if (bp->sblk_map == MAP_FAILED) {
6c64be
 		LOG_INFO(PFX "%s: Could not mmap status block: %s",
6c64be
 			 nic->log_name, strerror(errno));
6c64be
@@ -602,9 +602,9 @@ static int bnx2_open(nic_t *nic)
6c64be
 			  BNX2_SBLK_EVEN_IDX(bp->status_blk.msi->rx2));
6c64be
 	}
6c64be
 
6c64be
-	bp->tx_ring = mmap(NULL, 2 * getpagesize(),
6c64be
+	bp->tx_ring = mmap(NULL, 2 * nic->page_size,
6c64be
 			   PROT_READ | PROT_WRITE, MAP_SHARED, nic->fd,
6c64be
-			   (off_t) 2 * getpagesize());
6c64be
+			   (off_t) 2 * nic->page_size);
6c64be
 	if (bp->tx_ring == MAP_FAILED) {
6c64be
 		LOG_INFO(PFX "%s: Could not mmap tx ring: %s",
6c64be
 			 nic->log_name, strerror(errno));
6c64be
@@ -614,7 +614,7 @@ static int bnx2_open(nic_t *nic)
6c64be
 
6c64be
 	bp->bufs = mmap(NULL, (bp->rx_ring_size + 1) * bp->rx_buffer_size,
6c64be
 			PROT_READ | PROT_WRITE,
6c64be
-			MAP_SHARED, nic->fd, (off_t) 3 * getpagesize());
6c64be
+			MAP_SHARED, nic->fd, (off_t) 3 * nic->page_size);
6c64be
 	if (bp->bufs == MAP_FAILED) {
6c64be
 		LOG_INFO(PFX "%s: Could not mmap buffers: %s",
6c64be
 			 nic->log_name, strerror(errno));
6c64be
@@ -693,7 +693,7 @@ static int bnx2_open(nic_t *nic)
6c64be
 	return 0;
6c64be
 
6c64be
 error_bufs:
6c64be
-	munmap(bp->tx_ring, 2 * getpagesize());
6c64be
+	munmap(bp->tx_ring, 2 * nic->page_size);
6c64be
 
6c64be
 error_tx_ring:
6c64be
 	munmap(bp->status_blk.msi, bp->status_blk_size);
6c64be
@@ -765,7 +765,7 @@ static int bnx2_uio_close_resources(nic_t *nic, NIC_SHUTDOWN_T graceful)
6c64be
 	}
6c64be
 
6c64be
 	if (bp->tx_ring != NULL) {
6c64be
-		rc = munmap(bp->tx_ring, 2 * getpagesize());
6c64be
+		rc = munmap(bp->tx_ring, 2 * nic->page_size);
6c64be
 		if (rc != 0)
6c64be
 			LOG_WARN(PFX "%s: Couldn't unmap tx_rings",
6c64be
 				 nic->log_name);
6c64be
@@ -884,7 +884,7 @@ void bnx2_start_xmit(nic_t *nic, size_t len, u16_t vlan_id)
6c64be
 	uint16_t ring_prod;
6c64be
 	struct tx_bd *txbd;
6c64be
 	struct rx_bd *rxbd;
6c64be
-	rxbd = (struct rx_bd *)(((__u8 *) bp->tx_ring) + getpagesize());
6c64be
+	rxbd = (struct rx_bd *)(((__u8 *) bp->tx_ring) + nic->page_size);
6c64be
 
6c64be
 	if ((rxbd->rx_bd_haddr_hi == 0) && (rxbd->rx_bd_haddr_lo == 0)) {
6c64be
 		LOG_PACKET(PFX "%s: trying to transmit when device is closed",
6c64be
diff --git a/iscsiuio/src/unix/libs/bnx2x.c b/iscsiuio/src/unix/libs/bnx2x.c
6c64be
index c6e92cf..36fc48e 100644
6c64be
--- a/iscsiuio/src/unix/libs/bnx2x.c
6c64be
+++ b/iscsiuio/src/unix/libs/bnx2x.c
6c64be
@@ -818,7 +818,7 @@ static int bnx2x_open(nic_t *nic)
6c64be
 
6c64be
 	bp->status_blk.def = mmap(NULL, bp->status_blk_size,
6c64be
 				  PROT_READ | PROT_WRITE, MAP_SHARED,
6c64be
-				  nic->fd, (off_t) getpagesize());
6c64be
+				  nic->fd, (off_t) nic->page_size);
6c64be
 	if (bp->status_blk.def == MAP_FAILED) {
6c64be
 		LOG_INFO(PFX "%s: Could not mmap status block: %s",
6c64be
 			 nic->log_name, strerror(errno));
6c64be
@@ -827,10 +827,10 @@ static int bnx2x_open(nic_t *nic)
6c64be
 		goto open_error;
6c64be
 	}
6c64be
 
6c64be
-	bp->tx_ring = mmap(NULL, 4 * getpagesize(),
6c64be
+	bp->tx_ring = mmap(NULL, 4 * nic->page_size,
6c64be
 			   PROT_READ | PROT_WRITE,
6c64be
 			   MAP_SHARED | MAP_LOCKED,
6c64be
-			   nic->fd, (off_t) 2 * getpagesize());
6c64be
+			   nic->fd, (off_t) 2 * nic->page_size);
6c64be
 	if (bp->tx_ring == MAP_FAILED) {
6c64be
 		LOG_INFO(PFX "%s: Could not mmap tx ring: %s",
6c64be
 			 nic->log_name, strerror(errno));
6c64be
@@ -840,12 +840,12 @@ static int bnx2x_open(nic_t *nic)
6c64be
 	}
6c64be
 
6c64be
 	bp->rx_comp_ring.cqe = (union eth_rx_cqe *)
6c64be
-	    (((__u8 *) bp->tx_ring) + 2 * getpagesize());
6c64be
+	    (((__u8 *) bp->tx_ring) + 2 * nic->page_size);
6c64be
 
6c64be
 	bp->bufs = mmap(NULL, (bp->rx_ring_size + 1) * bp->rx_buffer_size,
6c64be
 			PROT_READ | PROT_WRITE,
6c64be
 			MAP_SHARED | MAP_LOCKED,
6c64be
-			nic->fd, (off_t) 3 * getpagesize());
6c64be
+			nic->fd, (off_t) 3 * nic->page_size);
6c64be
 	if (bp->bufs == MAP_FAILED) {
6c64be
 		LOG_INFO(PFX "%s: Could not mmap buffers: %s",
6c64be
 			 nic->log_name, strerror(errno));
6c64be
@@ -937,7 +937,7 @@ static int bnx2x_open(nic_t *nic)
6c64be
 		bp->rx_prod_io = BAR_USTRORM_INTMEM +
6c64be
 		    USTORM_RX_PRODS_OFFSET(bp->port, bp->client_id);
6c64be
 
6c64be
-		bp->tx_doorbell = bp->cid * getpagesize() + 0x40;
6c64be
+		bp->tx_doorbell = bp->cid * nic->page_size + 0x40;
6c64be
 
6c64be
 		bp->get_rx_cons = bnx2x_get_rx;
6c64be
 		bp->get_tx_cons = bnx2x_get_tx;
6c64be
@@ -1073,7 +1073,7 @@ SF:
6c64be
 
6c64be
 open_error:
6c64be
 	if (bp->tx_ring) {
6c64be
-		munmap(bp->tx_ring, 4 * getpagesize());
6c64be
+		munmap(bp->tx_ring, 4 * nic->page_size);
6c64be
 		bp->tx_ring = NULL;
6c64be
 	}
6c64be
 
6c64be
@@ -1150,7 +1150,7 @@ static int bnx2x_uio_close_resources(nic_t *nic, NIC_SHUTDOWN_T graceful)
6c64be
 	}
6c64be
 
6c64be
 	if (bp->tx_ring != NULL) {
6c64be
-		rc = munmap(bp->tx_ring, 4 * getpagesize());
6c64be
+		rc = munmap(bp->tx_ring, 4 * nic->page_size);
6c64be
 		if (rc != 0)
6c64be
 			LOG_WARN(PFX "%s: Couldn't unmap tx_rings",
6c64be
 				 nic->log_name);
6c64be
@@ -1284,7 +1284,7 @@ void bnx2x_start_xmit(nic_t *nic, size_t len, u16_t vlan_id)
6c64be
 	struct eth_tx_start_bd *txbd;
6c64be
 	struct eth_tx_bd *txbd2;
6c64be
 	struct eth_rx_bd *rx_bd;
6c64be
-	rx_bd = (struct eth_rx_bd *)(((__u8 *) bp->tx_ring) + getpagesize());
6c64be
+	rx_bd = (struct eth_rx_bd *)(((__u8 *) bp->tx_ring) + nic->page_size);
6c64be
 
6c64be
 	if ((rx_bd->addr_hi == 0) && (rx_bd->addr_lo == 0)) {
6c64be
 		LOG_PACKET(PFX "%s: trying to transmit when device is closed",
6c64be
@@ -1539,6 +1539,7 @@ static int bnx2x_clear_tx_intr(nic_t *nic)
6c64be
 				LOG_ERR(PFX "bnx2x tx lock with prod == cons");
6c64be
 
6c64be
 			pthread_mutex_unlock(&nic->xmit_mutex);
6c64be
+			return 0;
6c64be
 		}
6c64be
 		return -EAGAIN;
6c64be
 	}
6c64be
diff --git a/iscsiuio/src/unix/nic.c b/iscsiuio/src/unix/nic.c
6c64be
index 457797d..7c3f4d5 100644
6c64be
--- a/iscsiuio/src/unix/nic.c
6c64be
+++ b/iscsiuio/src/unix/nic.c
6c64be
@@ -400,6 +400,7 @@ nic_t *nic_init()
6c64be
 	nic->tx_packet_queue = NULL;
6c64be
 	nic->nic_library = NULL;
6c64be
 	nic->pci_id = NULL;
6c64be
+	nic->page_size = getpagesize();
6c64be
 
6c64be
 	/* nic_mutex is used to protect nic ops */
6c64be
 	pthread_mutex_init(&nic->nic_mutex, NULL);
6c64be
diff --git a/iscsiuio/src/unix/nic.h b/iscsiuio/src/unix/nic.h
6c64be
index 7d2d078..7d1ae28 100644
6c64be
--- a/iscsiuio/src/unix/nic.h
6c64be
+++ b/iscsiuio/src/unix/nic.h
6c64be
@@ -140,7 +140,9 @@ typedef struct nic_interface {
6c64be
 	time_t start_time;
6c64be
 
6c64be
 	struct uip_stack ustack;
6c64be
-#define IFACE_NUM_INVALID	-1
6c64be
+
6c64be
+#define IFACE_NUM_PRESENT (1<<0)
6c64be
+#define IFACE_NUM_INVALID -1
6c64be
 	int iface_num;
6c64be
 	int request_type;
6c64be
 } nic_interface_t;
6c64be
@@ -247,6 +249,8 @@ typedef struct nic {
6c64be
 
6c64be
 	uint32_t intr_count;	/* Total UIO interrupt count            */
6c64be
 
6c64be
+	int page_size;
6c64be
+
6c64be
 	/* Held for nic ops manipulation */
6c64be
 	pthread_mutex_t nic_mutex;
6c64be
 
6c64be
-- 
6c64be
1.8.1.4
6c64be