Summary of changes between versions 3.0 and 3.1
-----------------------------------------------

 - Support for 26xx/8[1-3]xx added

 - Update to a newer qla2xxx


Summary of changes between versions 2.1.0 and 3.0
-------------------------------------------------

 - Update to kernels up to 3.6

 - Bug fixes and other improvements


Summary of changes between versions 2.0.0 and 2.1.0
---------------------------------------------------

 - Update to kernels up to 3.0

 - Complete NPIV support added. Particularly, now SCST core sees
   all the virtual targets and provide separate target-oriented access
   control for them. Thanks a lot to Uri Yanai and Dorit
   Halsadi!

 - Node name setting added

 - qlini_mode "disabled" parameter handling improved

 - Local sessions management made more robust

 - Long CDBs handling fixed

 - Per sessions commands stats implemented based on patch from Steven
   Umbehocker <steven.umbehocker@osnexus.com>

 - Bug fixes and other improvements


Summary of changes between versions 1.0.2 and 2.0.0
---------------------------------------------------

 - Support for 24xx/25xx added

 - Disable by default initiator mode if target mode enabled. It can be changed
   using .config option CONFIG_SCSI_QLA2XXX_TARGET_DISABLE_INI_MODE.


Summary of changes between versions 1.0.1 and 1.0.2
---------------------------------------------------

 - Failure of enabling target mode, if do it too fast, fixed
   Based on work by sdrb <sdrb@onet.eu>

 - Possible crash with too fast target mode enabling/disabling or
   module unload fixed

 - Implemented abort on timeout of stuck in the firmware commands


Summary of changes between versions 1.0.0 and 1.0.1
---------------------------------------------------

 - Update to initiator driver from 2.6.27

 - HOWTO added (Amit Mehta)

 - Fixed wrong sess_count decrement on session registration failure

 - Fixed possible oops in the initiator driver on the module unload

 - Updated to work on kernels up to 2.6.29

 - Other minor fixes


Summary of changes between versions 0.9.5 and 1.0.0
---------------------------------------------------

 - Fixed sg_tablesize in qla2x00t to be per target card, not global

 - Updated to work on 2.6.25.x

 - Updated to work on 2.6.24.x

 - Fixed possible crash if tgt module rmmod'ed under load

 - Fixed incorrect residual on internal BUSY replies

 - Updated to work on 2.6.23.x

 - Fixes a race, when an event comes on the driver unload, so DPC thread
   will try to use already half destroyed data.

 - Fixed problem with SNS, not advertising target mode.

 - Support for per-target default security groups added.

 - Updated to work on 2.6.22.x kernels.

 - Updated to work on 2.6.21.x kernels.

 - Updated to work on 2.6.20.x kernels.

 - Updated to work with SCST 0.9.6.

 - /proc support routines changed to work with seq_file interface.

 - Cleanups and minor bug fixes.


Summary of changes between versions 0.9.3.8 and 0.9.5
-----------------------------------------------------

 - Ported to 2.6.17.x and 2.6.18.

 - Problem with not found WWN on the first login attempt fixed.

 - Updated for the latest SCST interfaces changes.

 - Cleanups and minor bug fixes.


Summary of changes between versions 0.9.3.8 and 0.9.3.9
-------------------------------------------------------
Patch vs: qla2xxx v8.01.03-k (in kernels 2.6.15.x+, including 2.6.16-prex)

 - Fixed problem when "out-of-order frames rassembly" bit was wrongly set,
   which lead to only 1Gbps speed of 23xx cards.

 - Removed all code that deals with "use_sg == 0" data, since staring
   from SCST 0.9.5 commands data are always in SG-vector.

 - Fixed hungup on the module unload.

 - Minor cleanups and fixes


Summary of changes between versions 0.9.3.7 and 0.9.3.8
-------------------------------------------------------
Patch vs: qla2xxx v8.01.03-k (in kernels 2.6.15.x+, including 2.6.16-prex)

 - Minor cleanups


Summary of changes between versions 0.9.3.6 and 0.9.3.7
-------------------------------------------------------
Patch vs: qla2xxx v8.01.03-k (in kernels 2.6.15.x+, including 2.6.16-prex)

 - Fix null pointer dereference in do_ctio_complete (thanks to Calvin Morrow)


Summary of changes between versions 0.9.3.5 and 0.9.3.6
-------------------------------------------------------
Patch vs: qla2xxx v8.01.03-k (in kernels 2.6.15.x+, including 2.6.16-prex)

 - Include MEMSET, MEMCPY definitions

 - Patched to compile on 64bit cleanly (thanks to Ming Zhang for patch)

- Fixed possible race during initial enabling of Target Mode (thanks to
Mark Buechler for finding)


Summary of changes between versions 0.9.3.4 and 0.9.3.5
-------------------------------------------------------
Patch vs: qla2xxx v8.01.03-k (in kernels 2.6.15.x)

 - Reset chip when switching from initiator to initiator/target and back
implemented

 - Use 2K loop_id's for 23xx chips and thus change how sessions are
tracked.

 - Added Module Info

 - Fixed module counting with initiator module preventing it from going
away w/out telling us (pointed out by Vladislav Bolkhovitin)

 - Some minor debugging changes


Summary of changes between versions 0.9.3.2 of old driver and 0.9.3.4
---------------------------------------------------------------------

 - Support for the latest in-tree Qlogic initiator added by Nathaniel
Clark

 - Only one module is build and it interacts with a patched kernel
qla2xxx driver. The single module is called qla2x00tgt.ko instead of
having one for each driver type.

 - Target mode can be enabled via a sysfs interface on a per card basis.
Under the appropriate scsi_host there is now an entry
target_mode_enabled, which can read and written.
