Commit Graph

74 Commits

Author SHA1 Message Date
Bart Van Assche 5d67fefe37 - Fixed a race condition found via source reading: srpt_remove_one() did not
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
2009-07-29 16:57:00 +00:00
Bart Van Assche 2de35d6ad4 Fixed the following issue reported by lockdep:
------------[ cut here ]------------
WARNING: at kernel/lockdep.c:2197 trace_hardirqs_on_caller+0x14c/0x1b0()
Call Trace:
 <IRQ>
 [<ffffffff8024636f>] warn_slowpath+0xaf/0x110
 [<ffffffff8026e1be>] ? check_usage_forwards+0x5e/0xc0
 [<ffffffff8026e818>] ? mark_lock+0x538/0xcc0
 [<ffffffff802ccfc1>] ? cache_alloc_refill+0x191/0x2b0
 [<ffffffff804ee62b>] ? _spin_unlock_irq+0x2b/0x40
 [<ffffffff8026f23c>] trace_hardirqs_on_caller+0x14c/0x1b0
 [<ffffffff8026f2ad>] trace_hardirqs_on+0xd/0x10
 [<ffffffff804ee62b>] _spin_unlock_irq+0x2b/0x40
 [<ffffffffa0657711>] srpt_handle_new_iu+0x2f1/0x630 [ib_srpt]
 [<ffffffffa0657bab>] srpt_completion+0x15b/0x300 [ib_srpt]
 [<ffffffffa04321f2>] mlx4_ib_cq_comp+0x12/0x20 [mlx4_ib]
 [<ffffffffa01f42aa>] mlx4_cq_completion+0x3a/0x80 [mlx4_core]
 [<ffffffffa01f5585>] mlx4_eq_int+0x295/0x2a0 [mlx4_core]
 [<ffffffffa01f561f>] mlx4_msi_x_interrupt+0xf/0x20 [mlx4_core]
 [<ffffffff80288565>] handle_IRQ_event+0x35/0x70
 [<ffffffff8028a144>] handle_edge_irq+0xb4/0x150
 [<ffffffff8020eb71>] do_IRQ+0x81/0x110
 [<ffffffff8020ced3>] ret_from_intr+0x0/0xf
 <EOI>
 [<ffffffff803b1a88>] ? cfb_imageblit+0x578/0x5a0
 [<ffffffff803aaf09>] ? bit_putcs+0x3d9/0x6a0
 [<ffffffff8026f252>] ? trace_hardirqs_on_caller+0x162/0x1b0
 [<ffffffff8026f2ad>] ? trace_hardirqs_on+0xd/0x10
 [<ffffffff804eb425>] ? thread_return+0x3d/0x928
 [<ffffffff803ab49b>] ? soft_cursor+0x1ab/0x220
 [<ffffffff803aaac7>] ? bit_cursor+0x647/0x6b0
 [<ffffffff803a4a9b>] ? fbcon_putcs+0x1cb/0x320
 [<ffffffff803aab30>] ? bit_putcs+0x0/0x6a0
 [<ffffffff803a7506>] ? fbcon_redraw+0x166/0x1d0
 [<ffffffff803a7770>] ? fbcon_scroll+0x200/0xd50
 [<ffffffff803f7af0>] ? scrup+0x100/0x110
 [<ffffffff803f7c7d>] ? lf+0x6d/0x70
 [<ffffffff803fbb1d>] ? do_con_write+0x9dd/0x2300
 [<ffffffff8026eff6>] ? mark_held_locks+0x56/0xa0
 [<ffffffff8026f252>] ? trace_hardirqs_on_caller+0x162/0x1b0
 [<ffffffff803fd499>] ? con_write+0x19/0x30
 [<ffffffff803ea683>] ? n_tty_write+0x383/0x480
 [<ffffffff8026f2ad>] ? trace_hardirqs_on+0xd/0x10
 [<ffffffff8023d7d0>] ? default_wake_function+0x0/0x10
 [<ffffffff803e76f4>] ? tty_write+0x1b4/0x280
 [<ffffffff803ea300>] ? n_tty_write+0x0/0x480
 [<ffffffff802d312b>] ? vfs_write+0xcb/0x170
 [<ffffffff802d32c0>] ? sys_write+0x50/0x90
 [<ffffffff8020c51b>] ? system_call_fastpath+0x16/0x1b
 ---[ end trace 954f4d9b9b9cdecc ]---


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@931 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-07-03 19:15:15 +00:00
Bart Van Assche 23e57ce05d Compiles now against vanilla 2.6.18 kernel headers.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@926 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-06-29 19:00:10 +00:00
Bart Van Assche 7084cac82e Display which kernel headers are used during compilation of the SRP target driver.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@913 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-06-18 18:35:05 +00:00
Bart Van Assche 010750bf7c Ported to 2.6.30 kernel.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@898 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-06-14 07:45:12 +00:00
Bart Van Assche fd89f0427b Updated SRPT documentation.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@881 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-05-22 10:59:16 +00:00
Bart Van Assche 262a538807 - Compiles again on RHEL 5.
- 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
2009-05-22 06:39:42 +00:00
Bart Van Assche 4f8bd9a517 Removed the scst_released synchronization object because the previous
commit made it superfluous.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@879 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-05-21 12:41:53 +00:00
Bart Van Assche 7519550fcb Moved scst_register() call from srpt_detect() to srpt_add_one(). Added
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
2009-05-21 12:34:11 +00:00
Bart Van Assche 106acdb7d6 - Switched to a more traditional error handling style with regard to MAD
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
2009-05-21 11:28:09 +00:00
Bart Van Assche 00dcebdb41 Fixed bug that was introduced through the previous commit (r875): a warning message was printed by srpt_remove_one() when sdev != NULL instead of when sdev == NULL.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@876 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-05-21 10:57:20 +00:00
Bart Van Assche b2d0960b57 Moved the code for freeing the ring of I/O context structures to a separate function.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@875 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-05-21 06:54:42 +00:00
Bart Van Assche 2959a19435 Moved the code for unregistering the MAD agent into a separate function.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@874 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-05-21 06:33:38 +00:00
Bart Van Assche 7617a71367 Added more comments.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@863 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-05-19 17:58:06 +00:00
Bart Van Assche 5347e3f509 Reverted r857 because the coding style of r856 is believed to be what is expected upstream instead of the coding style of r857.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@860 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-05-19 16:41:09 +00:00
Bart Van Assche f3d5d989ca Cleaned up changes introduced in r855.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@857 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-05-16 11:24:45 +00:00
Bart Van Assche 812d04fa03 Added more comments.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@856 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-05-16 11:20:52 +00:00
Bart Van Assche 76bdb860f0 Split srpt_handle_new_iu() in smaller functions.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@855 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-05-16 07:34:41 +00:00
Bart Van Assche 0a76a2b21a Updated to do list.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@848 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-05-11 17:55:59 +00:00
Bart Van Assche 72f5b47141 Another documentation update.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@838 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-05-10 19:20:58 +00:00
Bart Van Assche 0f132124b9 Added more details.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@837 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-05-10 18:28:09 +00:00
Bart Van Assche 7340819a3f Clarified an error message.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@836 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-05-10 18:25:08 +00:00
Bart Van Assche 63bc07871d Added a variant of the patch for scripts/Makefile.lib.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@835 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-05-10 18:04:57 +00:00
Bart Van Assche 603d81dde4 Documented how to build SCST-SRPT against OFED.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@834 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-05-10 17:31:22 +00:00
Bart Van Assche 9b25c9c44c Updated to do file.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@833 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-05-10 17:29:41 +00:00
Bart Van Assche 52d50a5ea7 Removed one OFED installation test because on some distro's it triggers false complaints.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@822 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-05-04 20:02:30 +00:00
Bart Van Assche c521377609 ib_srpt.c compiles now on RHEL 5.x systems where OFED has been installed.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@820 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-05-04 18:57:04 +00:00
Bart Van Assche 2f1acab33e Prepend the OFED kernel header paths before the regular kernel header path when compiling on a system where OFED has been installed.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@819 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-05-04 18:55:50 +00:00
Bart Van Assche 90e914fd25 - Removed comments that referred to the 2.4 module build system.
- Simplified this Makefile: the target all now directly refers to
  src/Module.symvers. Removed the phony target Module.symvers.
- An error message is now printed if OFED has been built with srpt=y.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@817 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-05-02 12:38:33 +00:00
Bart Van Assche 19ab352393 Made building against OFED more robust.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@815 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-05-01 19:12:14 +00:00
Bart Van Assche 8f7f3d64cc Added support for compiling scst-srpt on a system where the OFED InfiniBand
kernel modules have been installed.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@814 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-05-01 09:24:47 +00:00
Vladislav Bolkhovitin f572d4ff79 - Copyrights updated.
- Other minor updates



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@803 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-04-27 19:01:28 +00:00
Bart Van Assche c712d12f40 The function srpt_cm_req_recv() now returns an error code instead of 0
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
2009-04-26 09:10:52 +00:00
Bart Van Assche c3d3378bc2 Made show_login_info() work for InfiniBand HCA's with more than two
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
2009-04-26 08:39:06 +00:00
Vladislav Bolkhovitin eb14f7ca12 ChangeLog and ToDo files updated
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@725 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-03-27 19:50:23 +00:00
Vladislav Bolkhovitin 643c7ab2d1 Patch from Ruben Laban <r.laban@ism.nl>:
I replaced all occurences of DISTDIR with DESTDIR and also introduced SBINDIR (and friends) to some other Makefiles. 



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@719 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-03-25 19:33:10 +00:00
Vladislav Bolkhovitin d3d5666f5d Cleanups
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@682 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-03-03 17:00:53 +00:00
Vladislav Bolkhovitin e8b67bb755 - Docs updates
- Minor cleanups



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@675 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-02-18 18:52:35 +00:00
Vladislav Bolkhovitin 48addc3482 Modified patch from Bart Van Assche <bart.vanassche@gmail.com>
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
2009-01-23 19:51:54 +00:00
Vladislav Bolkhovitin 968475e2dc Obsolete TODO removed
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@625 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-12-26 17:42:21 +00:00
Vladislav Bolkhovitin de25580abb Checkpatch fix
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@616 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-12-10 15:55:16 +00:00
Vladislav Bolkhovitin 41c3515516 - Memory barriers cleanup. Comments for them improved
- Small docs update
 - srpt/README_in-tree added



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@614 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-12-10 10:55:01 +00:00
Bart Van Assche f1b811e8dc Fixed typo.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@607 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-12-06 14:04:29 +00:00
Vladislav Bolkhovitin 26cde4de56 Make soft IRQ context default
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@594 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-12-03 18:01:42 +00:00
Vladislav Bolkhovitin e967b30f95 Small cleanup of unused code
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@566 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-11-10 17:23:23 +00:00
Vladislav Bolkhovitin 06905f3e57 Follow-up improvements to r556
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@558 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-10-31 16:17:08 +00:00
Vladislav Bolkhovitin 3379376993 - Fixed incorrect SCST state used on error path
- Small cleanups
 - ToDo entry added


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@557 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-10-31 11:16:47 +00:00
Vladislav Bolkhovitin 90c831b838 Cleanup removing usage of in_atomic(). Particularly, now target drivers and dev handlers need to explicitly supply preferred execution context in scst_cmd_done() and scst_tgt_cmd_done().
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
2008-10-31 10:49:25 +00:00
Vladislav Bolkhovitin 0b2be958e9 The patch below makes the srpt driver compile against the 2.6.27 kernel
headers.

Signed-off-by: Bart Van Assche <bart.vanassche@gmail.com>
Acked-by: Vu Pham <vu@mellanox.com>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@551 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-10-30 12:34:48 +00:00
Vladislav Bolkhovitin 2688d2b8c4 The patch below fixes the sparse warnings in ib_srpt.c about missing
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
2008-10-24 12:14:11 +00:00