srpt_ch_qp_rtr() and srpt_ch_qp_rts().
- Replaced dynamic memory allocation (kmalloc()/kfree()) in the aforementioned
two functions by stack allocation.
- Compiles again on pre-2.6.22 kernels (RHEL / CentOS systems).
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1015 d57e44dd-8a1f-0410-8b47-8ef2f437770f
- Inlined srpt_disconnect_channel().
- Modified error handling coding style in srpt_cm_req_recv() to the usual
kernel coding style: upon error, jump to the error handling code.
- Added more comments.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1014 d57e44dd-8a1f-0410-8b47-8ef2f437770f
the SCST core fails (abort task, LUN reset, ...), an SRP_RSP PDU is
now sent back to the initiator.
- Added more debug tracing statements.
- Improved readability of some parts of the source code.
- Added more comments.
- Partially reverted one hunk of r1003: while casting an unsigned 64-bit
value to the type u64 and printing such values via %llx works fine on
x86 systems, the same code triggers a compiler warning on PowerPC
systems. So while r1003 changed some (unsigned long long) casts to (u64)
casts, this revision changes these back to (unsigned long long) casts.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1012 d57e44dd-8a1f-0410-8b47-8ef2f437770f
- Added a second argument to srpt_find_channel() that specified whether or not
the channel should be removed from the channel list if found.
- Moved list_del() statement from the body of the srpt_release_channel()
function to its callers.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1005 d57e44dd-8a1f-0410-8b47-8ef2f437770f
- Changed return type of srpt_release_channel() from int to void
because the return value did depend in a trivial way on the function
arguments. Changed the return type of srpt_find_and_release_channel()
and several of its callers also from int to void. Instead
srpt_cm_handler() now directly sets its own return value.
- Converted a list_for_each_entry_safe() into a list_for_each_entry() loop
because no elements are added or deleted in the loop body.
- Converted debug-printk() statements into TRACE_DBG().
- Changed indentation of one statement from 12 to 16 (was not reported by
checkpatch).
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1003 d57e44dd-8a1f-0410-8b47-8ef2f437770f
written into a buffer with a size of 32 bytes. Enlarged the buffer
to 36 bytes.
- Converted sprintf() calls to snprintf() calls.
- Added more TRACE_ENTRY() / TRACE_EXIT() statements.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@992 d57e44dd-8a1f-0410-8b47-8ef2f437770f
/proc/scsi_tgt/ib_srpt/trace_level such that the behavior of the
ib_srpt target is consistent with that of other SCST drivers.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@991 d57e44dd-8a1f-0410-8b47-8ef2f437770f
wait until srpt_refresh_port_work() finished. This race condition could be
triggered during module removal.
- Added a kernel module parameter called "trace_flag" that allows to set the
trace flags for the ib_srpt module before module initialization starts.
- Added sysfs variable /sys/class/infiniband_srpt/trace_level that allows to
display and to modify the enabled trace flags in a human-readable form.
- Added several TRACE_ENTRY() / TRACE_EXIT() statements.
- Added more comments.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@988 d57e44dd-8a1f-0410-8b47-8ef2f437770f
- RHEL 5 + OFED: fixed kernel oops that was triggered by the reception of
an asynchronous InfiniBand event.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@880 d57e44dd-8a1f-0410-8b47-8ef2f437770f
call to scst_unregister() in srpt_remove_one(). Result:
- The kernel oops triggered by loading the ib_srpt kernel module before
the InfiniBand subnet manager became active is now fixed.
- It is now possible to log in via the SRP protocol through HCA's that
became active after the ib_srpt kernel module finished module
initialization.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@878 d57e44dd-8a1f-0410-8b47-8ef2f437770f
handler registration: sport->mad_agent is now reset to NULL when MAD
handler registration fails.
- Fixed bug in srpt_refresh_port(): this function now returns a negative
value instead of zero when MAD registration fails.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@877 d57e44dd-8a1f-0410-8b47-8ef2f437770f
when an SRP login request is rejected. This fixes a memory leak: the
InfiniBand core (drivers/infiniband/core/cm.c) only calls cm_free_work()
when the registered cm_handler function, i.e. srpt_cm_req_recv()
returns an error code. This patch has been submitted by by Frank Zago.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@800 d57e44dd-8a1f-0410-8b47-8ef2f437770f
ports. show_login_info() produces the information that can be retrieved
from /sys/class/infiniband_srpt/srpt-*/login_info. Note: as of today
there do not yet exist any InfiniBand HCA's with more than two ports.
Thanks to Frank Zago for reporting this issue.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@799 d57e44dd-8a1f-0410-8b47-8ef2f437770f
It, hopefully, fixes compilation problems on CentOS 5.2 as well as on vanilla kernels <2.6.28
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@638 d57e44dd-8a1f-0410-8b47-8ef2f437770f
WARNING! This commit changes external SCST interface, so it can break compilation of your out of SCST SVN tree target driver or dev handler. To fix it, simply supply the preferred exection context to scst_cmd_done() and/or scst_tgt_cmd_done().
Thanks to Bart Van Assche <bart.vanassche@gmail.com> for pointing on it.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@556 d57e44dd-8a1f-0410-8b47-8ef2f437770f
declarations by inserting the keyword static where appropriate.
This patch has been verified by rereading the patch carefully, and by verifying
that SCST source code still compiles fine.
Signed-off-by: Bart Van Assche <bart.vanassche@gmail.com>
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@539 d57e44dd-8a1f-0410-8b47-8ef2f437770f
CONFIG_INFINIBAND_SRPT. This is a reminiscent from the time when the SRPT code
resided in the directory drivers/infiniband/ulp/srpt. Since this code has been moved
into the directory drivers/scst/srpt, the path below renames this config option
into CONFIG_SCST_SRPT. The other changes present in this patch are:
- Removed srpt/src/Makefile.infiniband.Linux-2.6.2[45].patch since these files are obsolete.
- Rewrote Kconfig help text slightly.
The patch below has been tested by verifying that the 2.6.26.5 kernel + SCST
patch still compiles cleanly with CONFIG_SCST_SRPT=m.
Signed-off-by: Bart Van Assche <bart.vanassche@gmail.com>
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@518 d57e44dd-8a1f-0410-8b47-8ef2f437770f
This patch has been tested by verifying that:
- the patched Linux 2.6.25.17 and 2.6.26.5 kernel trees still compile when
CONFIG_INFINIBAND_SRPT=m is present in .config (verified that
make -k modules only complains about a missing qla2xxx-target directory).
- the SCST out-of-tree source code still compiles fine against the 2.6.25 kernel
(make -s clean && make -C srpt -s clean && make -s scst iscsi-scst && make -C srpt -s).
- checkpatch output is identical for the output of scripts/generate-kernel-patch 2.6.25
and scripts/generate-kernel-patch 2.6.26.
Based on patch from Vu Pham <vu@mellanox.com>
Signed-off-by: Bart Van Assche <bart.vanassche@gmail.com>
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@516 d57e44dd-8a1f-0410-8b47-8ef2f437770f
ERROR: return is not a function, parentheses are not required
This patch has been tested by verifying that the newly generated patch still
applies without warnings to the 2.6.25.17 kernel and that the patched kernel
still compiles.
Signed-off-by: Bart Van Assche <bart.vanassche@gmail.com>
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@513 d57e44dd-8a1f-0410-8b47-8ef2f437770f