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