Next release ------------ Changes compared to version 2.2.0: - Made sure that the SCST session is unregistered after an initiator logs out. Due to a race condition sometimes the SCST session was not unregistered. - Fixed a QP use-after-free triggered by SRP logout. This could cause the following error messages to appear: ib_srpt: ***ERROR***: srpt_init_ch_qp() failed (-9) ib_srpt: ***ERROR***: rejected SRP_LOGIN_REQ because creating a new RDMA channel failed. - Disallowed new logins during module removal. Version 2.2.0 (January 26, 2012) ------------- Changes compared to version 2.1.0: - Changed default value of the kernel module parameter srp_max_req_size from 2116 into 4148. That last value corresponds to a table size of 255 elements. - "make debug2release" etc. now also affects ib_srpt. - Removed "thread" kernel module parameter. - Slightly reduced the number of IB interrupts caused by SRP traffic. - Fixed a bug that could cause valid logins to be rejected. The message that is logged in the system log if this happens is: ib_srpt: ***ERROR***: rejected SRP_LOGIN_REQ because creating a new RDMA channel failed - Fixed a bug that could cause unloading ib_srpt during I/O to take up to 120s. - Fixed a crash in the I/O context ring allocation that was triggered when trying to allocate more memory than available. - Fixed a bug that caused SRQ creation to fail when using a QLogic HCA (qib driver) and Linux kernel version 3.2 or later. - Builds again on 32-bit systems. Version 2.1.0 (September 8, 2011) ------------- Corresponds to r3848 on the 2.1.0.x branch Changes compared to version 2.0.0: - Added support for using the HCA node GUID as the SCST target port name instead of ib_srpt_target_. - Fixed a bug that could cause removing ib_srpt during I/O to hang. - Increased maximum RDMA completion time from 60s to 80s such that disconnecting an IB cable during I/O doesn't trigger complaints about IB completions that arrived too late. - Avoided that failed multipart RDMA transfers (e.g. due to disconnecting an IB cable) cause trouble. Known bugs: - Doesn't build on 32-bit systems. Version 2.0.0 (December 21, 2010) ------------- Changes compared to version 1.0.0: - Significantly improved performance by converting the per-channel I/O context ring into separate receive and transmit rings. - Fixed a bug that could cause a task management request to cause SRP credits to be lost. - Fixed SCSI residual handling. Version 1.0.1 (April 28, 2009) ------------- Changes compared to version 1.0.0: - Performance has been improved. I/O requests are now handled in soft IRQ context instead of on a separate thread, which drastically reduces the number of context switches needed for processing I/O (r594). - Added support for building SCST-SRPT against the OFED InfiniBand drivers (r814:838). - Compiles now without further patches on RHEL 5.x / CentOS 5.x systems (r638). - Compiles now against 2.6.26 and later kernels (r516). - Fixed incorrect SCST state used on error path (r557). - Fixed memory leak triggered by rejecting SRP login requests (r800). - Fixed kernel oops triggered by reception of an asynchronous InfiniBand event. Asynchronous events are triggered by e.g. resetting an InfiniBand switch or reconnecting an InfiniBand cable (r878:880). The call stack of the oops is as follows: queue_work+0x1a/0x20 schedule_work+0x16/0x20 srpt_event_handler+0xda/0xe0 [ib_srpt] ib_dispatch_event+0x39/0x70 [ib_core] mlx4_ib_process_mad+0x3e6/0x430 [mlx4_ib] ib_post_send_mad+0x374/0x6f0 [ib_mad] ? futex_wake+0x105/0x120 ib_umad_write+0x4a8/0x5c0 [ib_umad] vfs_write+0xcb/0x170 sys_write+0x50/0x90 system_call_fastpath+0x16/0x1b - The login information for HCA's with more than two ports is now displayed correctly. Note: no such devices exist yet (r799). Version 1.0.0 (released on July 14, 2008) ------------- Almost identical to trunk r440 (only the variables SCST_DIR and EXTRA_CFLAGS in the Makefiles are different from trunk r440).