Commit Graph

446 Commits

Author SHA1 Message Date
Bart Van Assche
edadea8fd0 ib_srpt: RHEL 5.3 build fix
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4603 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-11-05 08:53:35 +00:00
Bart Van Assche
9e1b02afa8 ib_srpt: Remove an unused variable
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4554 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-10-08 14:09:27 +00:00
Bart Van Assche
8801f5babf ib_srpt: Convert 'sizeof e' into 'sizeof(e)'
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4540 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-10-02 08:29:45 +00:00
Bart Van Assche
3d1468cfac ib_srpt: Convert two functions two single-exit style
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4516 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-09-13 08:15:23 +00:00
Vladislav Bolkhovitin
8ce28aaba2 Avoid that enabling a target too quickly triggers a crash
The sysfs attributes of a target can be accessed before scst_tgt.tgt_priv
has been set. Avoid that such an access triggers a crash.

Symptom:
BUG: unable to handle kernel NULL pointer dereference at 000000000000004c
IP: [<ffffffffa1345848>] iscsi_is_target_enabled+0x8/0x20 [iscsi_scst]
PGD 150a4c067 PUD 13cacb067 PMD 0
Oops: 0000 [#1] SMP
CPU 1
Modules linked in: zfs(P) iscsi_scst(O) scst_vdisk(O) scst(O) zcommon(P) znvpair(P) zavl(P) zunicode(P) spl(O) [last unloaded: zfs]
Pid: 3974, comm: scst_uid1864 Tainted: P           O 3.2.23-zfsiscsi-std-ipv6-64 #3 Supermicro X6DVA/X6DVA
RIP: 0010:[<ffffffffa1345848>]  [<ffffffffa1345848>] iscsi_is_target_enabled+0x8/0x20 [iscsi_scst]
RSP: 0018:ffff88015071ddc0  EFLAGS: 00010282
RAX: 0000000000000000 RBX: ffff880181fdaa00 RCX: ffff88012d41f380
RDX: ffff88015071c010 RSI: 0000000000000000 RDI: ffff880181fdaa00
RBP: ffff88015071ddc0 R08: 0000000000000000 R09: 0000000000000001
R10: 0000000000000001 R11: 0000000000000001 R12: ffffffffa134a608
R13: 0000000000000000 R14: 0000000000000129 R15: ffffffffa134a4c0
FS:  0000000000000000(0000) GS:ffff88019fc80000(0000)
knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
CR2: 000000000000004c CR3: 0000000151927000 CR4: 00000000000006e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Process scst_uid1864 (pid: 3974, threadinfo ffff88015071c000, task ffff880194d57500)
Stack:
 ffff88015071de10 ffffffffa12ee89a 00000000fffffffc 01ff88015071de98
 ffff88015071de80 ffff8801932a48d8 00000000fffffffc ffff88015071de98
 ffff88015071de80 ffff880194d57500 ffff88015071de30 ffffffffa12f582e
Call Trace:
 [<ffffffffa12ee89a>] __scst_is_relative_target_port_id_unique+0x6a/0xc0 [scst]
 [<ffffffffa12f582e>] gen_relative_target_port_id+0x6e/0xd0 [scst]
 [<ffffffffa12fdb8a>] scst_tgt_enable_store_work_fn+0x3a/0xe0 [scst]
 [<ffffffffa12f9397>] sysfs_work_thread_fn+0xc7/0x2e0 [scst]
 [<ffffffffa12f92d0>] ? scst_tgtt_release+0x20/0x20 [scst]
 [<ffffffffa12f92d0>] ? scst_tgtt_release+0x20/0x20 [scst]
 [<ffffffff810b44f6>] kthread+0x96/0xa0
 [<ffffffff81b8ed74>] kernel_thread_helper+0x4/0x10
 [<ffffffff810b4460>] ? kthread_worker_fn+0x180/0x180
 [<ffffffff81b8ed70>] ? gs_change+0xb/0xb
Code: 42 c8 74 0f 39 78 48 75 ea c9 c3 0f 1f 84 00 00 00 00 00 31 c0 c9 c3 66 66 66 2e 0f 1f 84 00 00 00 00 00 48 8b 47 48 55 48 89 e5 <0f> b6 40 4c c9 83 e0 01 c3 66 66 66 66 66 66 2e 0f 1f 84 00 00
RIP  [<ffffffffa1345848>] iscsi_is_target_enabled+0x8/0x20 [iscsi_scst]
 RSP <ffff88015071ddc0>
CR2: 000000000000004c
---[ end trace 6311d4069703be07 ]---

Reported-by: Etienne Dechamps <e-t172@akegroup.org>
Signed-off-by: Bart Van Assche <bvanassche@acm.org> with some modifications



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4515 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-09-12 22:13:43 +00:00
Bart Van Assche
36a77c3708 ib_srpt: Avoid that module unloading races with closing sessions
Fixed issue:

BUG: unable to handle kernel paging request at ffffffffa04dc479
IP: [<ffffffffa04dc479>] 0xffffffffa04dc478
Oops: 0010 [#1] SMP
Pid: 29313, comm: srpt_mlx4_0-2 Tainted: G           O 3.6.0-rc1-debug+ #1
Process srpt_mlx4_0-2
Call Trace:
 [<ffffffff8106254e>] ? kthread+0xae/0xc0
 [<ffffffff81418464>] ? kernel_thread_helper+0x4/0x10
 [<ffffffff8140f080>] ? _raw_spin_unlock_irq+0x30/0x50
 [<ffffffff810983ad>] ? trace_hardirqs_on+0xd/0x10
 [<ffffffff8140f359>] ? retint_restore_args+0xe/0xe
 [<ffffffff810624a0>] ? __init_kthread_worker+0x70/0x70
 [<ffffffff81418460>] ? gs_change+0xb/0xb
Code:  Bad RIP value.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4446 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-08-04 08:36:57 +00:00
Vladislav Bolkhovitin
955113f493 Sense handling improvements
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4408 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-07-18 21:28:57 +00:00
Bart Van Assche
47b2487b94 ib_srpt: Fix a checkpatch complaint
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4363 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-06-19 07:26:24 +00:00
Bart Van Assche
f53d181d40 ib_srpt: Fix procfs build
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4362 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-06-19 06:23:21 +00:00
Bart Van Assche
bef07c9d31 ib_srpt: Add one target per port support. Makes it possible to configure LUN
masking per IB HCA port instead of per HCA, just like what is possible with FC.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4354 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-06-18 12:10:53 +00:00
Bart Van Assche
178d0bd692 ib_srpt: Remove a superfluous comparison statement
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4353 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-06-18 11:27:02 +00:00
Bart Van Assche
065a1d7529 ib_srpt: Add a comment
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4315 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-05-23 08:24:05 +00:00
Bart Van Assche
907bc8222d ib_srpt: Make sure that a DREP is sent to the initiator if a DREQ is received while a session is being closed
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4313 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-05-23 07:32:02 +00:00
Bart Van Assche
d99379104b ib_srpt, procfs: Fix a compiler warning introduced in r4260
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4310 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-05-19 08:12:07 +00:00
Bart Van Assche
44978416d4 ib_srpt: Slightly reduce the CPU load caused by the srpt thread(s).
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4300 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-05-14 17:56:49 +00:00
Bart Van Assche
5256d37f42 ib_srpt: Make SCST I/O context configurable at compile time
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4299 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-05-14 17:42:37 +00:00
Bart Van Assche
ea47b3c059 ib_srpt: Fix spelling in a source code comment
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4298 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-05-14 15:09:36 +00:00
Bart Van Assche
7596ffd7dd ib_srpt: Reduce RDMA_COMPL_TIMEOUT_S back to its original value now that read and write processing happens again on the context of the SCST command threads instead of the srpt completion thread
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4289 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-05-07 14:59:57 +00:00
Bart Van Assche
48fc76ecb4 ib_srpt: Revert most of r4282 - a channel must be added to the channel list before unlocking the spinlock such that the completion thread can safely invoke list_del()
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4284 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-05-04 17:18:22 +00:00
Bart Van Assche
1baaaea48b ib_srpt: Test earlier during login whether a port has been disabled
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4282 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-05-04 13:49:04 +00:00
Bart Van Assche
4b47a45373 ib_srpt: Make the login log line easier to read
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4281 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-05-04 13:45:25 +00:00
Bart Van Assche
8f334bd78e ib_srpt: Fix a few (theoretical ?) race conditions
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4278 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-05-03 11:00:39 +00:00
Bart Van Assche
1d6daae29e ib_srpt: Handle thread creation failure properly
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4270 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-05-02 15:19:40 +00:00
Bart Van Assche
dc94ba7d76 ib_srpt: Simplify login error handling code
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4269 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-05-02 15:18:24 +00:00
Bart Van Assche
08a2d59408 ib_srpt: Correct __srpt_close_ch() comments.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4268 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-05-02 15:16:40 +00:00
Bart Van Assche
c2cea7b776 ib_srpt: Handle thread creation failure properly
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4267 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-05-02 13:57:07 +00:00
Bart Van Assche
ac77b3110d ib_srpt: Rename a label
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4266 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-05-02 13:48:54 +00:00
Bart Van Assche
11f5cf447c ib_srpt: Add a comment
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4265 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-05-02 09:46:04 +00:00
Bart Van Assche
8d775b8f39 ib_srpt: Replace list_for_each_entry_safe() by list_for_each_entry() where this is safe
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4264 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-05-02 09:35:40 +00:00
Bart Van Assche
7937b1b5cb ib_srpt: Remove an unused variable
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4263 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-05-02 09:30:22 +00:00
Bart Van Assche
fcfe100b79 ib_srpt, procfs: Remove code that shows the login information - it is redundant to the ibsrpdm output anyway.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4260 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-05-01 18:22:30 +00:00
Bart Van Assche
8f1017612b ib_srpt: Rewrite the gcc <= 4.6 compiler bug workaround such that it doesn't trigger a checkpatch complaint
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4258 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-05-01 06:46:28 +00:00
Bart Van Assche
1856c4985b ib_srpt: Process chained sg lists correctly
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4235 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-04-26 12:37:48 +00:00
Bart Van Assche
707535b683 ib_srpt: Update an error message
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4222 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-04-24 08:01:34 +00:00
Bart Van Assche
84cbe52cf4 ib_srpt: Make sure that srpt_cm_req_recv() returns a negative value if login is refused
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4221 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-04-24 07:59:12 +00:00
Bart Van Assche
56684eee96 ib_srpt: Change return value of srpt_handle_tsk_mgmt() from u8 into void
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4220 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-04-24 07:54:33 +00:00
Bart Van Assche
cd3f9bfea8 ib_srpt: Process receive completions on the context of an SCST worker thread
instead of on the context of an srpt thread. Improves performance for many
configurations but decreases performance up to 10% in some cases.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4219 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-04-21 11:51:48 +00:00
Vladislav Bolkhovitin
eb95049061 Copyrights updated + cleanups
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4216 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-04-18 02:26:39 +00:00
Bart Van Assche
2d71d64481 ib_srpt: Remove a superfluous test
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4212 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-04-14 13:04:11 +00:00
Bart Van Assche
1c4b023f83 ib_srpt: Only enable the recently added gcc workaround for gcc 4.6 and earlier
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4211 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-04-14 12:56:36 +00:00
Bart Van Assche
f022a827ba ib_srpt: Close active sessions when disabling a target
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4202 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-04-10 15:02:13 +00:00
Bart Van Assche
e4bc6f2b2b ib_srpt: Workaround for an openSUSE 12.1 compiler bug (see also http://bugzilla.novell.com/show_bug.cgi?id=756235)
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4201 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-04-10 14:59:26 +00:00
Bart Van Assche
b675a6b02c ib_srpt: Make sure that pre-RTU requests are processed before post-RTU requests
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4200 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-04-10 14:58:31 +00:00
Bart Van Assche
3c2957284c ib_srpt: Avoid that sessions are not unregistered properly
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4193 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-04-06 08:11:47 +00:00
Bart Van Assche
4c36a0632a ib_srpt: Fix a race triggered by the code for handling IB CM RTU notifications
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4192 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-04-06 08:00:14 +00:00
Vladislav Bolkhovitin
90670b1c83 scst_rx_mgmt_fn_lun(): Change 3rd arg from u8 * into void *
This change allows to remove several casts and hence improves
source code readability.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4169 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-03-27 01:40:45 +00:00
Bart Van Assche
30615c003c ib_srpt: Clarify a comment
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4147 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-02-25 08:59:13 +00:00
Bart Van Assche
2553057f73 ib_srpt: Disallow new logins during module removal
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4146 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-02-25 08:58:50 +00:00
Bart Van Assche
2d12dae7b4 ib_srpt: Whitespace-only change
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4145 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-02-24 07:21:24 +00:00
Bart Van Assche
c4d91e67d9 ib_srpt: Follow-up for r4143
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4144 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-02-24 07:20:52 +00:00