                             Release Notes
					QLogic's ESX iSCSI Offload Driver

							QLogic Corporation

              Copyright (c) 2015 QLogic Corporation
                         All rights reserved.

Version 2.713.60.v[50,55,60].1 (Oct 03, 2017)
====================================

1. Update driver version to sync with other components.

Version 2.713.30.v[50,55,60].5 (May 23, 2017)
====================================
 Workaround 
 ----------
   1. Workaround to avoid initiating FIN request from initiator side.
      (in case of graceful termination), this will avoid disconnect
      timeout(cid leaked) issue.
 
Version 2.713.30.v[50,55,60].4 (Mar 21, 2017)

====================================

 Enhancements

   ------------

   1. Changes: Extra Module parameter to ASSERT in CID leak condition is detected.

               Added few prints to dump sqe elements too.

Version 2.713.30.v[50,55,60].3 (Feb 07, 2016)
====================================
1. Update the driver version to sync with other components.

Version 2.713.30.v[50,55,60].2 (Nov. 25, 2016)
====================================
1. Update the driver version since header has changed.

Version 2.713.30.v[50,55,60].1 (Oct. 21, 2016)
====================================
	Fixes
	------
	1.	Problem: CQ85438: PSOD while discovering LUN

		Cause: Same ekrnel timer was used before removing 
		previous instance.

		Change: Removing kernel timer after wait is done.
	
	2.	Problem: CQ82633: PSOD while running IOs

		Cause: Delete ramrod is issued even though TCP connection 
		failed, which is not acceptable causing PSoD

		Change: Setting CTX_FL_OFFLD_START flag only after successful
		TCP connection is established. 

 Enhancements
   ------------
   1. Changes: CQ87001: Added some new field for application support.

Version 2.713.10.v[50,55,60].1 (Sep. 28, 2015)
====================================
   Enhancements
   ------------
   1. Changes: Modified driver version from 712.70 to 713.10 for OEM Project.

Version 2.712.70.v[50,55,60].2 (Sep. 07, 2015)
====================================
   Enhancements
   ------------
   1. Changes: Update driver version since fw has changed.

Version 2.712.70.v[50,55,60].1 (Jul. 29, 2015)
====================================
   Enhancements
   ------------
   1. Changes: Modified driver version from 712.50 to 712.70 for OEM Project.

Version 2.712.50.v[50,55,60].4 (Jul. 17, 2015)
====================================
	Fixes
	------
	1.	Problem: CQ80233: PSOD running IOVP ESXi 6.0 TC ,
			 Jumboframe::iSCSIJumboFramesWithActiveSessions v60.712.53

		Cause: There is a timing issue between bnx2i_stop and bnx2i_start callbacks from cnic layer.
		       MTU change operation invokes bnx2i_stop, which put all the sessions for recovery.
		       Once recovery is done, we clear the UP hba_state. Before we get the bnx2i_start call,
		       we get next ep_connect from transport layer. We do couple of operations before we
		       check the hba state, which is causing PSOD.

		Change: HBA state checking added immediately after hba is populated in ep_connect.

	2.	Problem: CQ80624: PSOD running IOVP ESXi 6.0 TC, durring proc entry.

		Cause: Driver do not have any check before accessing ep pointer.

		Change: Added proper check before dereferencing the ep pointer.

	Enhancements
   	------------
	1. BNX2FC: Added support to get physical port number
			in ioctl interface.


Version 2.712.50.v[50,55,60].3 (Jun. 26, 2015)
====================================
	Fixes
	------
	1.	Problem: CQ:80338 IOVP ESXi 6.0 TC Limit::MaxTargets Fails,
			 can't discover more then 120 targets.

		Cause: We have one to one mapping between iscsi driver cid and cnic context id.
		       In ep_disconnect, we free driver cid and request cnic to clear related 
		       context id. cnic sometimes clears this context id in worker thread.
		       In next ep_connet, if we get same driver cid as above and try offloading
		       the connection, we get CID_BUSY message from cnic, we return without freeing
		       driver cid in this specific case. This locks the driver cid forever.

		Change: Checking of CID_BUSY condition to free iscsi driver cid is removed.

Version 2.712.50.v[50,55,60].2 (May. 12, 2015)
====================================
	Fixes
	------
	1.	Problem: commit for CL 278577 has overwritten the changes commited in CL 274438.

		Cause: manual merge has accidently overwritten the patch commited for CL 274438 

		Change: Added the changes again. 

	2.	Problem: PR#1413315 - [SR][PSOD]@BlueScreen: #PF Exception 14
			in world 905114:vmm1:Integra IP 0x41800791ea71 addr 0x758 

		Cause: async event notification after bnx2i_stop call. We are trying to dereference hba pointer
			in endpoint structure, which will be NULL. 

		Change: Condition added to check if hba is NULL before dereferencing. 


	Enhancements
   	------------
   	1. BNX2I: Additional IOCTL support (scsi_passthru cmd )for BNX2I.
	2. Default print statements added during connection establishment and termination. 



Version 2.712.50.v[50,55,60].1 (Apr. 06, 2015)
====================================
	Fixes
	------
	1.	Problem: CQ78119: Incorrect scsi dev name for 20G adapter.

		Cause: This adapter has new PCI id, which description was not included
			in driver.

		Change: Added proper desription for it.

	2.	Changes: Changed driver version from 712.40 to 712.50 for OEM Project.

Version 2.712.40.v[50,55].1 (Feb 25, 2015)
====================================
   Enhancements
   ------------
   1. Changes: Changed driver version from 712.30 to 712.40 for OEM Project.

Version 2.712.30.v[50,55].2 (Feb. 16, 2015)
====================================
	Fixes
	------
	1.	Problem: PR 1354153: VMK_ASSERT(lun <= 255) 
		Cause:
			VMK_ASSERT condition for lun ids more than 255,
			during second level lun support. 	
		Solution:
			VMK_ASSERT condition is removed.	

		Impact:  ESX iSCSi offload.

	Enhancements
   	------------
   	1. BNX2I: Initial IOCTL support for BNX2I.


Version 2.712.30.v[50,55].1 (Jan 12, 2015)
====================================
   Enhancements
   ------------
   1. Changes: Modified driver version from 712.10 to 712.30 for OEM Project.

Version 2.712.10.v[50,55].4 (Dec 9, 2014)
====================================
	Fixes
	------
	1.	Problem: PR 1343419: Hit PSOD in iscsi session add remove test
		Cause:
			If cm_connect fails with cm_sk still being null. And in
			error handling path we are trying to call cm_destroy for
			that cm_sk which results in page fault
		Solution:
			We check if cm_sk is a valid pointer or not before we
			call cm_destroy preventing PSoD

		Impact:  ESX iSCSi offload.

	2. Problem: CQ77004: 1G 5709 iSCSI adapter shows 10Gigabit ESX Ethernet
		iSCSI Adapter.
	   Cause:
	   		Driver have been publishing a string, irrespective of the NIC
			underneath.
	   Solution:
	   		Populate description string with respect to device's SSID.

	   Impact:  ESX iSCSi offload.


Version 2.712.10.v[50,55].3 (Nov 24, 2014)
====================================
   Enhancements
   ------------
   1. Changes: Second level LUN support added.
   				The changes are ported from 2015_inbox branch.
				The support is added in latest ESX6.0 OS version.
				vmklnx_scsi_host_set_capability is modified to
				vmklnx_scsi_host_set_capabilities from the patch.

	2. Changes: Rebranding Changes.

	Fixes
	------
	1.	Problem: CQ76357: Rebranding- Adapter device name show Broadcom name

    		Solution:Corrected vendor name to get expected behavior.

	2. 	Problem: CQ76639: Rebranding- Driver modules namespace field 
			shown "Broadcom" wording.

   		Solution:Corrected the namespace.

	3.	Problem: CQ 75966: firmware generate MC assert during target logout
	event

		Cause:
			During Continuous target login/logout, sometime driver hit a race
			condition when FIN from target comes before driver starts waiting
			for asyn message from firmware. Due to this driver send unexpected
			RAMROD, and firmware generate assertion for it.

		Solution:
			Update the wait_event condition, to handle the case where driver
			driver receive the FIN before function execution.

		Impact:  ESX iSCSI Only.


Version 2.712.10.v[50,55].2 (Oct 29, 2014)
====================================
	Fixes
	------
	1.	Problem: PR 1287461: PSoD while running session add/remove script
		Cause:
		       After running session add/remove script, host machine gets hung after few
		       hundred iterations due to memory allocation failures at various instances.

		Solution:
		       CIDs are now manged properly, if CID is busy it is not freed.
		       Also CID assignment is done before allocating QP resource to
		       make sure that particular CID is freed.
		       Memory leaks are also fixed, which were exposed due to this issue.

		Impact:  ESX iSCSi offload.

Version 2.712.10.v[50,55].1 (Oct 28, 2014)
====================================
   Enhancements
   ------------
   1. Changes: Changed driver version from 710.70 to 712.10 for OEM Project.

Version 2.710.70.v[50,55].3 (Oct 16, 2014)
====================================
   Enhancements
   ------------
   1. Changes: Rebranded from Broadcom -> QLogic

Version 2.710.70.v[50,55].2 (Sep. 22, 2014)
====================================
	Fixes
	------
	1.	Problem:  PSoD while running session add/remove script. 
	
		cause:	While running session add/remove script host machine gets hung
		 	after some time resulting in CPU lockup 
			In the backtrace you could see it stuck in bnx2i_conn_start

		Fix:	Starting timer function before bnx2i_update_iscsi_conn() call;
			so if update conn timeouts due to some reason
			Timer function will handle things elegantly.

		Impact:  ESX iSCSi only. 

        
Version 2.710.70.v[50,55].1 (Aug. 28, 2014)
====================================
        Enhancements
        ------------
        1.Release for T7.10c.

Version 2.710.50.v[50,55].1 (Jul. 15, 2014)
====================================
	Enhancements
        ------------
	1.Release for T7.10b.

Version 2.710.30.v[50,55].6 (Jul. 03, 2014)
====================================
	Enhancements
	------------
	1. Change: Rollback the Rebranding changes from Broadcom -> QLogic.

Version 2.710.30.v[50,55].5 (Jun. 24, 2014)
====================================
   Enhancements
   ------------
   1. Problem: Cont00074054- ESX 51 : Load of <cnic> failed , Load of <bnx2i> failed : missing required namespace.
     Change: Changed 7a in driver version string to 710.

Version 2.7a.30.v[50,55].5 (Jun. 24, 2014)
====================================
   Enhancements
   ------------
   1. Change: Rebranded from Broadcom -> QLogic
   2. Change: Add additional debug info in proc.
   3. Change: Uniform debug statements for the module.

Version 2.7a.30.v[50,55].4 (May 13, 2014)
====================================
   Enhancements
   ------------
   1. Change: Sync'ed with the latest cnic_if.h file from
              cnic-2.7a.35.v[50,55].1 header files.

Version 2.7a.30.v[50,55].3 (May 1, 2014)
====================================
   Enhancements
   ------------
   1. Change: Sync'ed with the latest bnx2x-1.7a.35.v[50,55].1 header files
              and HSI

Version 2.7a.30.v[50,55].2 (Apr. 23, 2014)
====================================
   Enhancements
   ------------
   1. Change: Sync'ed with the latest bnx2x-1.7a.34.v[50,55].1 header files
              and HSI

Version 1.7a.30.v[50,55].1 (Feb. 25, 2014)
====================================
   Enhancements
   ------------
   1. Branched for T7.10a

Version 2.7a.03.v[50,55].1 (Jan. 23, 2014)
====================================
   Enhancements
   ------------
   1. Change: Sync'ed with the latest bnx2x-1.7a.06.v[50,55].2 header files
              and HSI

Version 2.7a.02.v[50,55].1 (Dec. 20, 2013)
====================================
   Fixes
   -----
   1. Problem: PR1090885 Performance regression on 10G initiator 

      cause:   The bnx2i max sector setting got reduce to 127 
               for 10G hba due a bugs in max sector setting code. 

      Fix:     Implement correct max sector setting. 

      Impact:  ESX iSCSi only. 

   Enhancements
   ------------
   1. Corrected driver version to allow future upgrades to occur.

Version 2.710.01.v[50,55].1 (Oct. 10, 2013)
====================================
   Enhancements
   ------------
   1. Branched for T7.10

Version 2.78.75.v[50,55].1 (Oct. 4, 2013)
====================================
   Enhancements
   ------------
   1. Branched for T7.8c

Version 2.78.52.v55.2 (Sept 26, 2013)
===============================
   Enhancements
   ------------
   1. Change:  Compiled against ESX 5.5 Build 1331820.

      Impact:  ESX5.5 only


Version 2.78.52.v55.1 (Sept 10, 2013)
===============================
   Fixes
   -----
   1. Problem: Host failed to connect to iSCSI target with driver
               bundle version 50.78.52
      Change:  The offset for offload the doorbells have changed
               with bnx2x-1.78.52.  The bnx2i driver has been
               updated to reflect the new offsets.

   Enhancements
   ------------
   1. Change:  Remove the unneeded cnic_register depenendency

   2. Change:  Sync'ed with the latest cnic_if.h header files

   3. Change:  Compiled against ESX 5.5 Build 1302513.

      Impact:  ESX5.5 only


Version 2.78.51.v[50,55].1 (Aug 27, 2013)
===============================
   Fixes
   -----
   1. Problem: (CQ70631) Update the VMWARE_ESX_DDK_VERSION with
               correct ESX5.5 version.

      Change:  In the bnx2i.sc file the VMWARE_ESX_DDK_VERSION is
               now set correctly for ESX5.5

      Impact:  ESX only.

   2. Problem: (CQ70703)1G iSCSi stack complains about F-bit iSCSi 
               protocol error when running IOVP PSAMaskLunActive test. 

      Change:  reduce max_sector setting for 1G device to 127.

      Impact: ESX 1G NIC only. 
   
   Enhancements
   ------------
   1. Change:  Remove second-level lun addressing capability.

      Impact:  ESX5.5 only


Version 2.78.50.v55.2 (Aug 13, 2013)
===============================
   Enhancements
   ------------
   1. Change:  Compiled against ESX 5.5 Build 1260114.

      Impact:  ESX5.5 only

Version 1.78.50.v[50,55].1 (Aug 1, 2012)
====================================
   Enhancements
   ------------
   1. Branched to T7.8a

Version 2.78.11.v55.2 (July 02, 2013)
===============================
   Enhancements
   ------------
   1. Change:  Compiled against ESX 5.5 Build 1198610.

      Impact:  ESX5.5 only


Version 2.78.11.v[50,55].1 (June 20, 2013)
===============================
   Fixes
   =====
   1. CQ69596: ESX 5.1 iSCSi: "DMA mem alloc failed" error when running
	       login/logout test with 128 connections. 
      
      Cause:   the bnx2i per HBA DMA memory pool size is too small for
               SQ size of 128 entries.  
      
      Change:  Increase the per HBA DMA memory pool size to 32Mbytes from
               from 24 Mbytes.  

      Impact:  ESX iSCSi offload. 
  
   Enhancements
   ------------
   1. Change: Make per connection iscsi tasks tunable via bnx2_max_task_pgs module 
	      parameter.

      Impact: all.

   2. Change:  Compiled against ESX 5.5 Build 1168834

      Impact:  ESX5.5 only

Version 2.78.10.v[50,55].1 (June 3, 2013)
===============================
   Enhancements
   ------------
   1. Change:  Compiled against ESX 5.5 Build 1158824

      Impact:  ESX5.5 only


Version 2.78.09.v[50,55].1 (May 24, 2013)
===============================
   Fixes
   =====
   1. Problem: Since bnx2i didn't specify dma_boundary in its
               scsi_host_template (leave it as zero), a default
               4G dma_boundary was assigned by vmklinux.

      Cause:   The dma_boundary in Scsi_Host need to be correctly setup
               before calling into scsi_add_host.

      Change:  This change simply resets the dma_boundary in bnx2i
               Scsi_Host to whatever supported by physical device.

      Impact:  All.

   Enhancements
   ------------
   1. Change: Enable second-level lun addressing capability.
     
      Impact: ESX5.5 only

Version 2.78.08.v[50,55].1 (May 13, 2013)
===============================
   Fixes
   =====
   1. Problem: [PR1025381]vmk_ScsiCommand->bytesXferred is not accurate
                with bnx2i iscsi offload.

      Cause:   bnx2i driver didn't set the residual count correctly in the
               underflow case. 

      Change:  Make sure driver to update the residual count properly. 

      Impact:  All.

   2. Problem: endpoint timeout cleanup thread is not properly protected by
	       locks.

      Cause:   The current locking scheme for protecting the ep timemout
               list was not implemented properly.

      Change:  Changed the spin lock to use existing mutex for protection.

      Impact:  All.
      
Version 2.78.07.v55.1 (Apr 29, 2013)
===============================
   Enhancements
   ------------
   1. Change: Default max send queue size to 128. 

      Impact: All everest devices. 

   2. Change: Sync'ed with the latest bnx2x-1.78.17 header files
              and HSI

   3. Change:  Compiled against ESX 5.5 Build 1108855

      Impact:  ESX5.5 only


Version 2.78.06.v55.3 (Apr 12, 2013)
===============================
   Enhancements
   ------------
   1. Change:  Compiled against ESX 5.5 Build 1080575

      Impact:  ESX5.5 only

Version 2.78.06.v55.2 (Feb 25, 2013)
===============================
   Enhancements
   ------------
   1. Change:  Compiled against ESX 5.5 Build 1023671

      Impact:  ESX5.5 only

Version 2.78.06.v[50,55].1 (Feb 13, 2013)
===============================
  Fixes
  =====
  1. Problem:  CQ67635-ESX41:iscsi: "Unable to allocate iscsi context 
                resopurces" messages were seen when running Heavy I/O 
                and async logout test.

      Cause:    ofld_conn_active counter in bnx2i driver could get out
                of sync with iscsi_conns counter in cnic driver when
                exiting from some error path.

      Change:   Make sure bnx2i driver to send conn_destroy kwqe to
                cnic when exiting from these error path.

Version 2.78.05.v[41,50].1 (Jan 31, 2013)
===============================
  Fixes
  =====
   1. Problem: CQ67404 - ESX51:iscsi- Server PSOD when when removing broken 
               connection and bnx2i debug level set to 0xfffffff.

      Cause:   There is a race condition between conn_destroy() and 
               bnx2i_cm_remote_close() resulted into null session ptr. 

      Fix:     Close the race window. 

      Impact:  All.  

   2. Problem: CQ67270 - ESX51:iscsi: with Delayed ack enabled
               (by default), initiator is acking one packet at a time.

       Cause:   The 10G firmware added a new way to set the TCP
                delayed ACK setting in the ram I/O but introduced
                a bug in the old way which utilizes connection
                buffers
       Change:  Migrated the TCP delayed ACK setting to use the
                ram I/O instead
       Impact:  10G
      
 
Version 2.78.04.v[41,50].1 (Jan 14, 2013)
===============================
  Enhancements
  ============
   1. Increase max_sectors to 256 and make this variable tunable via module
      parameter.
      Impact: All

   2. Eliminate fail causing false alarm because of an invalid
      'start_bd_idx >  scsi_sg_count()' check.

Version 2.78.03.v[41,50].1 (Nov 08, 2012)
===============================
  Enhancements
  ============
    1. Added support for 10G 57840 4x10 and 2x20
       Impact: 10G 57840

Version 2.78.02.v[41,50].1 (Oct 29, 2012)
===============================
  Enhancements
  ============
    1. Sync'ed with the latest cnic_if.h header files
       Update cnic_eth_dev and cnic_dev versioning to T7.8

Version 2.78.01.v[41,50].1 (Oct 11, 2012)
===============================
  Enhancements
  ============
    1. Sync'ed with the latest cnic_if.h header files


Version 1.78.00 (Sept 27, 2012)
====================================
   Enhancements
   ------------
   1. Branched to T7.8


Version 2.74.07.[v41,50].2 (Sept 10, 2012)
===============================
  Enhancements
  ============
    1. Sync'ed with the latest bnx2x header files


Version 2.74.07 (Sept 05, 2012)
===============================
  Fixes
  =====
    1. Problem: CQ65452 - Connection to VM is lost when 
		removing/adding iSCSI session with heaving 
		traffic.
	Cause:  bnx2i driver didn't cleanup active cmds when
                a iSCSi session is removed. 
	
	Change: Add code logic to cleanup active cmds during
		bnx2i_conn_destroy().
	
	Impact: ESX bnx2i driver. 
	
Version 2.74.06 (Aug 30, 2012)
===============================
  Fixes
  =====
    1. Problem: CQ65410-[BDKL147] [Modified] [PR 857847] 
                PSOD # PF Exception 14 @bnx2i_ep_connect, 
                iscsilinux_ep_connect_extended.
       Cause:   bnx2i driver could still register itself with
                ESX stack even when the cnic driver hasn't
                start up properly.
       Change:  bnx2i should check whether cnic has been 
                start up properly before registration.
       Impact:  All ESX drivers.

Version 2.74.05 (Aug 20, 2012)
===============================
  Enhancements
  ============
    1. Sync'ed with the latest cnic_if.h header file
    2. Make changes made in bnx2i-2.74.04 to be ESX 6.0 specific

Version 2.74.04 (July 20, 2012)
===============================
  Fixes
  =====
    1. Problem: Cont64452 - ESX60:iscsi-SUT PSOD when adding
                iscsi sessions
       Cause:   The PSOD is only occuring on beta builds because the
                DMA'able memory is not associted with a device which
                is being caught by the IOMMU validator.
       Change:  Associate the bnx2i memory with the bnx2x PCI device.
       Impact:  All ESX drivers


Version 2.74.03 (July 3, 2012)
===============================
  Fixes
  =====
    1. Problem: Cont00064273 - PSOD with error messages bnx2i on
                ESX 5.1
       Cause:   The netdev->base_addr was deprecated from the bnx2
                L2 driver.  This is used by bnx2i for the BARn
                io mapping.
       Change:  Changed the iomapping to use the pci_resource_start
                routine dire

  Enhancements
  ============
    1. Backported error_mask1 fix from upstream

Version 2.74.02 (July 2, 2012)
===============================
  Fixes
  =====
    1. Problem: Cont00064367 - BCM5709 (bnx2i) cannot connect 
		to iSCSI targets.
       Cause:   hba->reg_base was not initialized properly. 
       Change:  Make sure to initialize the reg_base.
       Impact:  ESX
 
Enhancements
  ============
    1. Backported error_mask1 fix from upstream

Version 2.74.01 (Jun 27, 2012)
===============================
  Fixes
  =====
    1. Problem: Cont00064273 - PSOD with error messages bnx2i on
                ESX 5.1
       Cause:   The netdev->base_addr was deprecated from the bnx2
                L2 driver.  This is used by bnx2i for the BARn
                io mapping.
       Change:  Changed the iomapping to use the pci_resource_start
                routine directly
       Impact:  All

Version 2.74.00 (June 26, 2012)
==========================
   Enhancements
   ------------
   1. Sync cnic_if.h header file

Version 2.72.10 (Mar. 13, 2012)
==========================
   Enhancements
   ------------
   1. Change: Default MAX MTU support to 9000 for iSCSi offload
              for ESX5.0.  (Approved by VMware)

Version 2.72.9 (Mar. 09, 2012)
==========================
   Enhancements
   ------------
   1. Change: Default MAX MTU support to 1500 for iSCSi offload
              for ESX5.0. 
 
Version 2.72.8 (Feb. 20, 2012)
==========================
   Enhancements
   ------------
   1. Change: Coverity Cleanup

Version 2.72.7 (Feb. 1, 2012)
==========================
  Fixes
  =====
    1. Problem: Cont00061303 - error_mask1 and error_mask2 module
                parameters do not work.
       Cause:   The error_mask overriding mechanism has a bug which
                didn't allow it to work properly.
       Change:  Fixed the bug and also changed the error_mask1/2
                type attribute from int to uint so the MSB of the
                parameters can be set.
       Impact:  All

Version 2.72.6 (Jan. 24, 2012)
==========================
  Fixes
  -----
  1. Problem: CQ55707- ESX41-iSCSI: "syslog display " please submit grc Dump" 
              when running async logout test.
     Cause:   Under heavy loaded scenario, the disconnect completion could
              take longer than the disconnect timeout to get proessed by
              the driver and resulted in erroreous warning. 
     Fix:     set aside these connections and let a separate thread to 
              wait for the completion and process the connection cleanup.
     Impact:  Problem exists since day one and impact all device families
              that support iscsi. 

  2. Problem: CQ60976 - ESX50-iscsi ; Session drop and do not recover after 
              running error recovery test.
     Cause:   Under certain condition, vmkiscsid could call ep_disconnect()
              on the same ep multiple times without ep getting reconnect in
              between. This resulted in bnx2i driver decrement the ofld_conns_active 
              counter erroneously. This causes ulp_stop to remain in the while
              loop forever. 
     Fix:     Add reference counter to keep track ep disconnect calls and
              prevent bnx2i go through ep disconnect mutliple times.
     Impact:  newly introduced from 2.72.5.  

   Enhancements
   ------------
   1. Change: Added compiler hint unlikely() to error path's taken by
              KCQ completion routines.

Version 2.72.5 (Jan. 11, 2012)
==========================
  Fixes
  -----
  1. Problem: BDKL89: PSOD in cnic_cm_abort.
     Cause:   Under extreme condition, the ulp_stop could timeout early
              and allow cnic to clean up all the cnic sockets resources. 
              This leads to cnic to access NULL pointer when bnx2i still 
              tries to cleanup the connections.
     Fix:     Get rid of timeout in ulp_stop and ulp_stop only exit when
              all active connections get cleaned up. 

     Impact:  Problem exists since day one and impact all device families
              that support iscsi. 

   Enhancements
   ------------
   1. Change: Redefined wmb() to use the proper memory barrier
              instruction

   2. Change: Add Jumbo Frame Support for ESX 5.0+ only

Version 2.72.4 (Jan. 04, 2012)
==========================
   Enhancements
   ------------
   1. Change: Update copyright headers to 2012

   2. Sync'ed cnic_if.h header file

Version 2.72.3 (Dec 22, 2011)
======================================================
  Enhancement:
     1. Added extended iSCSi stats support. 

Version 2.72.2 (Nov 21, 2011)
======================================================
  Fixes
  -----
  1. Problem: CQ59844 - ESX 5.0 iSCSI: Server PSOD after running 
              traffic + login/logout and rescaned HBA's.
     Cause:   Periodic rescan could post scsi cmd to bnx2i driver
              when connection is in recovery. The conn and ep state
              pointer could be NULL and deferencing it will lead 
              PSOD. 
     Fix:     Check for NULL pointer before continue to process the
              scsi command.
     Impact:  Problem exists since day one and impact all device
              families that support iscsi. 

Version 2.72.l (Nov 14, 2011)
======================================================
  Initial Branch

Version 2.70.1l (Nov 4, 2011)
======================================================
  Fixes
  -----
  1. Problem: CQ59259 - SUT PSOD when running Traffic on 2 
              functions and running login logout on other 2 
              functions.
     Cause:   Unexpected SCSI cmd is posted to driver during
              login phase and lead to firmware to indicate 
	      wrong opcode rcvd event. This eventually lead to
              race condition where session block and ep disconnect
              step over each other and resulted in PSOD.
      Fix:    Reject unexpected SCSI cmd when ep state is not 
              in EP_STATE_ULP_UPDATE_COMPL state.
      Impact: problem exists since day one and impact all device
              families that support iSCSi. 

Version 2.70.1k (Oct 06, 2011)
======================================================
  Fixes
  -----
   1. Problem: CQ59101 - error messages "unable to allocate iSCSi
               context resources" seen after driver load.
      Cause:   sq_size didn't get setup properly.
      Change:  check sq_size against min/max values allowed.
      Impact:  newly introduced and impact all device families.
  
  Enhancements
  ============
    Add pmtu mismatch counter to sysfs. 

Version 2.70.1j (Oct 05, 2011)
======================================================
  Enhancements
  ============
    Add range / zero value checks to relevant module parameters


Version 2.70.1i (Sept 22, 2011)
======================================================
  Enhancements
  ============
    1.  Remove Jumbo Frame Support

Version 2.70.1h (Sept 13, 2011)
======================================================
  Enhancements
  ============
    1.  Update README.TXT in Caveat section 'iSCSI and FCoE offload
        coexistence (For ESX 5.0 and greater)'
    2.  Removed BCM57840 support

Version 2.70.1g (Aug 16, 2011)
======================================================
  Enhancements
  ============
    1.  Update README.TXT section 'Important information while working
        with Linux iET Targets' on choosing proper SCSISN for ESX 5.0.
    2.  Added versioning to the CNIC ULP structure to help futher
        prevent the mismatching and mixing of cnic/bnx2i/bnx2fc
        drivers.

Version 2.70.1f (July 15, 2011)
======================================================
   Fixes
   -----
    1. Problem: CQ56779 - E3-NPAR iscsi ESX41:Unable to setup an offload 
                iscsi connection when npar is enabled.
       Cause:  bnx2i driver didn't recognize the E3 NPAR device ids. 
       Change: Added checking of E3 NPAR device ids.
       Impact: 578xx device family.

Version 2.70.1e (June 23, 2011)
======================================================
  Enhancements
  ============
    1.  Add stats counters to keep track of failed TASK_CLEANUP requests,
        iSCSI ERROR and TCP ERROR Notification KCQEs
    2.  Force connection cleanup when the system is going down

Version 2.70.1d (June 22, 2011)
======================================================
  Enhancements
  -----
    1.  Update README.TXT with the proper bnx2i text

Version 2.70.1c (May 2, 2011)
======================================================
  Enhancements
  -----
    1.  Add Jumbo Frame Support

Version 2.70.1a.v41.1 (Mar 29, 2011)
======================================================
   Fixes
   -----
   1.  Backported from Linux bnx2i driver to support the new devices
       BCM57800/BCM57810/BCM57840
   2.  Remove BCM57713/BCM57713E


Version 1.9.2c (Mar 22, 2011)
======================================================
   Fixes
   -----
    1. Problem: CQ53805 - ESX41-iSCSI: iscsi sessions stop droping when
               bnx2x load with ooo disabled 
       Cause:   When remote FIN/RST is recived by cnic, it will initiate
               SRC_DEL and TERM_OFLD RAMRODs to reset option-2 state machine.
               If ep_disconnect() is called after cnic goes through option-2
               cleanup, cm_close() and cm_abort() will return -EALREADY to
               indicate L4 connection is already reset and current bnx2i was
               not checking for return status, if cm_close() and cm_abort()
               calls complete with -EALREADY, there will not be any further
               indication from cnic and will cause bnx2i to timeout waiting
               cm_close_cmpl() callback.
       Change:  bnx2i will not wait and proceed with connection upload when
               cm_close() and cm_abort() calls complete with -EALREADY
       Impact:  57710/5771/57711E


Version 1.9.2b.v41.2 (Mar 14, 2011)
======================================================
  Enhancements
  -----
    1.  Add initial support for BCM57800/BCM57810/BCM57840


Version 1.9.2b (Mar. 11, 2011)
==============================
    Fixes
    -----
    1.  Problem: Under a heavy load (ie. powering on VM's from an iSCSI
                 target would cause the system to crash.)

        Cause:  The RQ DB were out of sync between the firmware and the
                driver.

        Fix:    Align the RQ DB strctures to be 64 bytes in both the
                firmware and the driver.


Version 1.9.2a (Mar. 08, 2011)
==============================
    Fixes
    -----
    1.  Problem: Could not connect to iET and the following messages were
                 seen in the vmkernel log:

                 ALERT: LinScsi: SCSILinuxProcessCompletions: Error
                 BytesXferred > Requested Length but
		 HOST_OK/DEVICE_GOOD!vmhba = vmhba36,
		 Driver Name = bnx2i, Requested length = 4, Resid = 116 

        Cause:  Check in the vmkernel fails the command because the
	        vmkernel thinks the number of bytes transfer is greater
		then resid 

        Fix:    Detect this condition and only pass resid is the scsi
	        buffer length  < resid

Version 1.9.1t (Jan. 13, 2011)
==============================
  Enhancements
  ============
    1.  Update copyright headers to 2011

Version 1.9.1s (Jan. 10, 2011)
==============================
  Enhancements
  ============
    1.  Code Review Comments from VMware
        *  backported PR# 515157: [iBFT] Getting host to shutdown
	   takes a many minutes to finish
        *  backported PR#632150 bnx2i does not cleanup behind itself
	*  Remove unnecessary #ifdef's

Version 1.9.1r (Jan. 4, 2011)
==============================
  Enhancements
  ============
    1.  Print the CID and chip CID via sysfs

Version 1.9.1q (Dec. 6, 2010)
==============================
    Fixes
    -----
    1.  Problem: 10G Firmware would panic during a warm reboot with
                 pre-existing iSCSI sessions

        Cause:  cm_abort() was only allowed to be called when the
                ep state is at conn start for 1g.

        Fix:    Allow cm_abort() to be called when the ep state
                is at conn start both both 1g and 10g.  The idea is
                to allow cnic, instead of bnx2i, to decide to do SRC_DEL
                or not based on its own tracking.

Version 1.9.1o (Dec. 1, 2010)
==============================
  Enhancements
  ============
    1.  Expand debug printk to during connection update to 
        include conn_flags and exp_stat_sn for debug purposes.

Version 1.9.1n (Dec. 1, 2010)
==============================
  Enhancements
  ============
    1. Properly bump the BNX2I_SYSFS_VERSION variable

Version 1.9.1m (Nov. 30, 2010)
==============================
  Enhancements
  ============
    1. Increased default maximum sessions supported on 10G devices
        to 128 from 64
    2. Added debug statistics to visualize iSCSI OOO code being executed

Version 1.9.1l (Nov. 3, 2010)
==============================
  Enhancements
  ============
    1. Added OOO(Out-of-Order) support

Version 1.9.1k (Aug 25, 2010)
==============================
    Fixes
    -----
    1.  Problem: Symbol vmk_MemPoolLegacyCreate() is missing with
                 ESX 5.0 DDK Build 291687

        Cause:   vmkMemPool API has changed

        Fix:     Replace vmk_MemPoolLegacyCreate() with the ESX 5.0
	         equivalents.

Version 1.9.1j (Aug 25, 2010)
==============================
    Fixes
    -----
    1.  Problem: Code Doesn't compile on ESX build 291687

        Fix:     1. Backported changes from inbox bnx2i driver so 
	            that the bnx2i can compile


Version 1.9.1i (Aug 12, 2010)
==============================
    Fixes
    -----
    1.  Problem: VMware Code review comments

        Fix:     1.  Update copyright headers to 2010
                 2.  Backport fix for PR 570447 only for ESX5.0 and greater
                 3.  Only expose the ISID for ESX5.0

Version 1.9.1h (Aug 6, 2010)
==============================
    Fixes
    -----
    1.  Problem: Does not compile with VMware ESX 5.0(MN) DDK build #283126

        Cause:   vmkMemPool API has changed

        Fix:     Use the VMware ESX 5.0(MN) DDK build #283126 vmkMemPool API


Version 1.9.1g (Aug 3, 2010)
==============================
    Fixes
    -----
    1.  Problem: Does not compile with VMware ESX 5.0(MN) DDK build #281332

        Cause:   vmkMemPool API has changed

        Fix:     Use the VMware ESX 5.0(MN) DDK build #281332 vmkMemPool API


Version 1.9.1f (July 15, 2010)
==============================
    Fixes
    -----
    1.  Problem: PSOD during boot with a heavily loaded machine.

        Cause:   Cleanup exit routes in hba initialization code path
	         which could cause invalid pointer access,

        Fix:     Fixed via the following:

		    1. 'hba' memory should not be accessed after
                       scsi_host_put() which would have freed the hba
                       memory if host reference drops to '0'
                    2. Also exit hba init code path if memory pool
                       allocation fails


Version 1.9.1e (July 15, 2010)
==============================
    Fixes
    -----
    1.  Problem: VMware PR 570447: Returning BAD_TARGET breaks
                 VMware Pluggable Storage Architecture (PSA) assumptions.

        Cause:   Returning inproper error code.

        Fix:     Returning DID_OK with CC to indicate specific error.

Version 1.9.1d (June 10, 2010)
==============================

  Enhancements
  ============
    1.  Changes to fix bnx2i to compile with the latest ESX 5.0
    
       * Adding RESID for ESX 4.1 compiles
       * vmk_MemPools have been renamed as vmk_MemPoolLegacyAllocPropsq

Version 1.9.1b (May 11, 2010)
==============================

  Enhancements
  ============
    1. Added support for 57712
    2. Updated 577XX doorbell offset to adapt to t6.0 firmware


