Commit Graph

112 Commits

Author SHA1 Message Date
Bart Van Assche
7d89372c53 Makefiles: respect DESTDIR when specified
Not all SCST components handle DESTDIR properly, or at all.

In particular:
* INSTALL_MOD_PATH should account for DESTDIR when 'make modules_install'
  is invoked, so the kernel make infrastructure deploys the modules
  and runs depmod against the proper directory tree.
* depmods must include a '-b' option to reference the proper directory tree.
* Drop special ISCSI_DESTDIR.

Signed-off-by: Steven J. Magnani <steve@digidescorp.com>


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5289 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-02-18 08:40:36 +00:00
Bart Van Assche
79b8ce942e Makefiles: calculate KVER properly
When deriving the kernel version (KVER) from KDIR, the file
$(KDIR)/include/config/kernel.release should be preferred over
'make kernelversion'.

For example, the Ubuntu 3.2.0-23-generic kernel has a kernel.release
file containing '3.2.0-23-generic', but 'make kernelversion' returns
3.2.14. Since the modules are stored under /lib/modules/3.2.0-23-generic,
the value in kernel.release is the correct one to use.
    
Also:
- Evaluate KVER only once
- All depmod commands must include KVER
    
Signed-off-by: Steven J. Magnani <steve@digidescorp.com>
[bvanassche: Split long lines / removed trailing whitespace]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5286 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-02-14 15:52:10 +00:00
Bart Van Assche
e07a91e8a0 Makefiles: remove redundant 'depmod' invocations
Running 'make modules_install' already triggers invocation of depmod,
hence leave it out from those Makefiles that use 'make modules_install'.

Signed-off-by: Steven J. Magnani <steve@digidescorp.com>


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5283 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-02-14 13:05:55 +00:00
Bart Van Assche
adb3c46798 fcst: Increase ft_scst_template.sg_tablesize
The libfc implementation can handle long SG lists, hence increase
ft_scst_template.sg_tablesize from 128 to 65535.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5223 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-24 10:32:43 +00:00
Bart Van Assche
a57c9d0cee fcst: Fix a potential deadlock
This patch fixes the following lockdep warning:

======================================================
[ INFO: possible circular locking dependency detected ]
3.13.0-rc6-debug+ #5 Tainted: G        W  O
-------------------------------------------------------
rmmod/8653 is trying to acquire lock:
 (scst_tgt_kref){+.+.+.}, at: [<ffffffffa033de6f>] scst_tgt_sysfs_put+0x10f/0x190 [scst]

but task is already holding lock:
 (ft_lport_lock){+.+.+.}, at: [<ffffffffa029d3db>] ft_lport_del+0x1b/0x40 [fcst]

which lock already depends on the new lock.

the existing dependency chain (in reverse order) is:

-> #1 (ft_lport_lock){+.+.+.}:
       [<ffffffff8109b4b4>] lock_acquire+0xa4/0x1e0
       [<ffffffff81559837>] mutex_lock_nested+0x77/0x430
       [<ffffffffa029d5a0>] ft_tgt_enable+0x20/0xd0 [fcst]
       [<ffffffffa0335c99>] scst_process_tgt_enable_store+0xe9/0x230 [scst]
       [<ffffffffa0335dfc>] scst_tgt_enable_store_work_fn+0x1c/0x20 [scst]
       [<ffffffffa0338ebc>] scst_process_sysfs_works+0xfc/0x1f0 [scst]
       [<ffffffffa033d180>] sysfs_work_thread_fn+0x120/0x2b0 [scst]
       [<ffffffff81074850>] kthread+0xf0/0x110
       [<ffffffff815663fc>] ret_from_fork+0x7c/0xb0

-> #0 (scst_tgt_kref){+.+.+.}:
       [<ffffffff8109a95b>] __lock_acquire+0x17ab/0x1b10
       [<ffffffff8109b4b4>] lock_acquire+0xa4/0x1e0
       [<ffffffffa03375b9>] scst_kobject_put_and_wait+0x99/0x260 [scst]
       [<ffffffffa033de6f>] scst_tgt_sysfs_put+0x10f/0x190 [scst]
       [<ffffffffa03053dc>] scst_unregister_target+0x15c/0x3c0 [scst]
       [<ffffffffa029c69c>] ft_tport_delete+0x2c/0xa0 [fcst]
       [<ffffffffa029d3ec>] ft_lport_del+0x2c/0x40 [fcst]
       [<ffffffffa023e249>] fc_lport_iterate+0x49/0x80 [libfc]
       [<ffffffffa029d804>] ft_module_exit+0x36/0x832 [fcst]
       [<ffffffff810cd3f2>] SyS_delete_module+0x152/0x1f0
       [<ffffffff815664a9>] system_call_fastpath+0x16/0x1b

other info that might help us debug this:

 Possible unsafe locking scenario:

       CPU0                    CPU1
       ----                    ----
  lock(ft_lport_lock);
                               lock(scst_tgt_kref);
                               lock(ft_lport_lock);
  lock(scst_tgt_kref);

 *** DEADLOCK ***

2 locks held by rmmod/8653:
 #0:  (fc_prov_mutex){+.+.+.}, at: [<ffffffffa023e222>] fc_lport_iterate+0x22/0x80 [libfc]
 #1:  (ft_lport_lock){+.+.+.}, at: [<ffffffffa029d3db>] ft_lport_del+0x1b/0x40 [fcst]

stack backtrace:
CPU: 0 PID: 8653 Comm: rmmod Tainted: G        W  O 3.13.0-rc6-debug+ #5
Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
 ffffffff8222ce70 ffff88002efdbb70 ffffffff8155551c ffffffff8222ce70
 ffff88002efdbbb0 ffffffff81552248 ffff88002efdbc00 ffff88002ed0ed88
 ffff88002ed0e6d0 0000000000000002 0000000000000002 ffff88002ed0ed88
Call Trace:
 [<ffffffff8155551c>] dump_stack+0x4e/0x7a
 [<ffffffff81552248>] print_circular_bug+0x200/0x20f
 [<ffffffff8109a95b>] __lock_acquire+0x17ab/0x1b10
 [<ffffffff8109b4b4>] lock_acquire+0xa4/0x1e0
 [<ffffffffa03375b9>] scst_kobject_put_and_wait+0x99/0x260 [scst]
 [<ffffffffa033de6f>] scst_tgt_sysfs_put+0x10f/0x190 [scst]
 [<ffffffffa03053dc>] scst_unregister_target+0x15c/0x3c0 [scst]
 [<ffffffffa029c69c>] ft_tport_delete+0x2c/0xa0 [fcst]
 [<ffffffffa029d3ec>] ft_lport_del+0x2c/0x40 [fcst]
 [<ffffffffa023e249>] fc_lport_iterate+0x49/0x80 [libfc]
 [<ffffffffa029d804>] ft_module_exit+0x36/0x832 [fcst]
 [<ffffffff810cd3f2>] SyS_delete_module+0x152/0x1f0
 [<ffffffff815664a9>] system_call_fastpath+0x16/0x1b


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5196 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-16 15:23:45 +00:00
Bart Van Assche
6d7fb6343d fcst: Avoid that "rmmod fcst" hangs
Make sure that SCST sessions get unregistered when scst_unregister_target()
is invoked. This change is necessary because of r5083 ("Disable automatic
sessions unregistration").


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5195 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-16 15:22:00 +00:00
Bart Van Assche
9690e0f1c3 fcst: SLES 11 SP3 build fix
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5188 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-10 07:50:10 +00:00
Bart Van Assche
c296055104 fcst: Avoid that checkpatch complains about 'struct spinlock'
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5013 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-10-01 06:21:38 +00:00
Bart Van Assche
886ae66326 fcst: Avoid triggering CRC errors at the initiator side
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4969 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-08-13 18:43:56 +00:00
Bart Van Assche
80ba881d46 fcst: Fix ft_abort_cmd()
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4968 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-08-13 18:43:26 +00:00
Bart Van Assche
e6610624ae fcst: Report FC send errors
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4967 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-08-13 18:41:38 +00:00
Bart Van Assche
6c5328df1d fcst: Use proper length variable for bidir commands in ft_recv_write_data()
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4966 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-08-13 18:41:17 +00:00
Bart Van Assche
76cc1e8857 fcst: Always report FC exchange errors
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4965 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-08-13 18:40:34 +00:00
Bart Van Assche
c71c844c21 fcst: Eliminate ft_cmd.serial
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4964 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-08-13 18:40:00 +00:00
Bart Van Assche
07569ed62d fcst: Micro-optimize ft_cmd_free()
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4963 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-08-13 18:39:37 +00:00
Bart Van Assche
2381497291 fcst: Suppress a lockdep complaint
===============================
 [ INFO: suspicious RCU usage. ]
 3.10.0-rc1-debug+ #1 Tainted: G           O
 -------------------------------
fcst/ft_sess.c:194 suspicious rcu_dereference_protected() usage!
    
other info that might help us debug this:
    
rcu_scheduler_active = 1, debug_locks = 0
1 lock held by fcoethread/2/7942:
 #0:  (rcu_read_lock){.+.+..}, at: [<ffffffffa035ee30>] rcu_lock_acquire.constprop.14+0x0/0x30 [fcst]

stack backtrace:
CPU: 2 PID: 7942 Comm: fcoethread/2 Tainted: G           O 3.10.0-rc1-debug+ #1
Hardware name: Bochs Bochs, BIOS Bochs 01/01/2007
 0000000000000001 ffff88003b191c28 ffffffff81525a11 ffff88003b191c58
 ffffffff810a20ad ffff880039b7d1e8 ffff88003690c400 000000000000067a
 ffff880039b7cb88 ffff88003b191c80 ffffffffa035f67b ffff880039b7cb88
Call Trace:
 [<ffffffff81525a11>] dump_stack+0x19/0x1b
 [<ffffffff810a20ad>] lockdep_rcu_suspicious+0xfd/0x130
 [<ffffffffa035f67b>] ft_sess_get.isra.7+0x12b/0x150 [fcst]
 [<ffffffffa035f6e2>] ft_recv+0x42/0x100 [fcst]
 [<ffffffffa026edb2>] fc_lport_recv_req+0x272/0x2f0 [libfc]
 [<ffffffffa0268c3b>] fc_exch_recv+0x61b/0xdc0 [libfc]
 [<ffffffffa025f306>] fcoe_percpu_receive_thread+0x386/0x5f0 [fcoe]
 [<ffffffff8106d34b>] kthread+0xdb/0xe0
 [<ffffffff815357ac>] ret_from_fork+0x7c/0xb0



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4962 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-08-13 18:39:14 +00:00
Bart Van Assche
e506bd990d fcst: Fix a race condition
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4961 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-08-13 18:37:45 +00:00
Bart Van Assche
e41c3bf328 fcst: Fix a lockdep warning
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4960 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-08-13 18:37:23 +00:00
Bart Van Assche
cf8d18cba8 fcst: Remove ft_prlo() function header and a comment
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4959 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-08-13 18:37:00 +00:00
Bart Van Assche
049aab6dce fcst: Update a debug statement in ft_prli()
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4958 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-08-13 18:36:32 +00:00
Bart Van Assche
62059912bf fcst: Remove two comments from ft_prli_locked()
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4957 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-08-13 18:36:08 +00:00
Bart Van Assche
50c4c8ded9 fcst: Remove superfluous initialization from ft_sess_get()
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4956 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-08-13 18:35:45 +00:00
Bart Van Assche
5fd500a4e9 fcst: Include version number in module description
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4955 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-08-13 18:35:09 +00:00
Bart Van Assche
812c33d403 fcst: Update ft_send_resp_code() function header
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4954 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-08-13 18:34:43 +00:00
Bart Van Assche
54b4717ffa fcst: Inline ft_send_xfer_rdy_off()
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4953 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-08-13 18:34:19 +00:00
Bart Van Assche
c555196073 fcst: Update ft_send_response() comment header
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4952 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-08-13 18:33:51 +00:00
Bart Van Assche
c2cbc9fec7 fcst: Move a member variable in struct ft_sess
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4951 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-08-13 18:33:18 +00:00
Bart Van Assche
a578373d4e fcst: Add more debugging code in ft_sess_put()
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4950 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-08-13 18:32:41 +00:00
Bart Van Assche
08afc26627 fcst: Do not define kref_get_unless_zero() if backported through stable tree
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4934 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-08-03 18:06:32 +00:00
Bart Van Assche
1b94eecde7 fcst: Revert r4889 because it was wrong
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4931 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-08-03 15:14:19 +00:00
Bart Van Assche
067a3231f9 fcst: Fix a checkpatch complaint about whitespace
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4893 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-06-04 11:46:22 +00:00
Bart Van Assche
fda521f287 fcst: Follow-up for r4873
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4889 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-06-04 09:41:58 +00:00
Bart Van Assche
095813cc56 fcst: RHEL 6 build fix
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4886 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-06-03 15:41:09 +00:00
Bart Van Assche
b0133418e3 fcst: Fix a bug in a pre-2.6.36 error path. This was spotted by both sparse and smatch.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4873 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-05-21 18:18:37 +00:00
Bart Van Assche
88762d3574 fcst: Fix WRITE SAME handling
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4872 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-05-20 18:35:24 +00:00
Bart Van Assche
33c0e52b93 fcst: Fix two sparse warnings
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4870 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-05-20 06:39:24 +00:00
Bart Van Assche
8c3fc40784 fcst: Fix build on pre-2.6.36 kernels
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4869 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-05-20 06:37:55 +00:00
Bart Van Assche
2c01ef207f fcst: Avoid invoking ft_cmd_done(NULL)
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4867 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-05-19 18:10:20 +00:00
Bart Van Assche
aec51e803c fcst: Kernel 3.9 build fix
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4866 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-05-19 16:58:52 +00:00
Bart Van Assche
1ed1f3fda7 fcst: Eliminate ft_sess_lookup_delete()
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4865 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-05-19 16:57:57 +00:00
Bart Van Assche
c4b720647c fcst: Move the ft_prov data structure
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4864 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-05-19 16:56:42 +00:00
Bart Van Assche
06141fe25d fcst: Minimize comment diffs with upstream
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4863 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-05-19 16:54:34 +00:00
Bart Van Assche
f5fd68200e fcst: Introduce function ft_sess_hash()
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4862 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-05-19 16:53:24 +00:00
Bart Van Assche
55084ba194 fcst: Minimize diffs of ft_send_read_data() and ft_recv_write_data() with upstream
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4861 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-05-19 16:51:52 +00:00
Bart Van Assche
58aceecbff fcst: Move ft_recv_write_data()
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4860 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-05-19 16:50:02 +00:00
Bart Van Assche
a4851afe2d fcst: Change exch_done() into frame_send() to minimize diffs with upstream
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4859 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-05-19 16:47:50 +00:00
Bart Van Assche
14a9a7a39d fcst: Move an fr_seq() call to minimize diffs with upstream
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4858 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-05-19 16:27:18 +00:00
Bart Van Assche
7d9b329342 fcst: Move a declaration
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4857 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-05-19 15:23:18 +00:00
Bart Van Assche
029dc3a2e4 fcst: Declare a variable const
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4856 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-05-19 15:15:59 +00:00
Vladislav Bolkhovitin
369863f015 Allow install SCST in any location
Currently the install location of SCST is pretty much hard coded into 
the Makefiles to be /usr/local.

I am custom building a system for ZFS & SCST and I want to install in 
/usr instead of /usr/local.

Currently I am doing a “find . -name Makefile -exec sed -i 's:/usr/local:/usr:g'
{} \;” to accommodate this.

This patch fixes it.

From Sietse van Zanen <sietse@wizdom.nu>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4791 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-03-08 21:25:45 +00:00