Commit Graph

3959 Commits

Author SHA1 Message Date
Bart Van Assche
4177cd82a6 scst_debug.h: Avoid that the sBUG() and sBUG_ON() definitions confuse the smatch static code checker
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5277 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-02-09 16:50:10 +00:00
Bart Van Assche
72968c9c15 scst: Build fix for kernel versions before 2.6.37
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5276 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-02-08 08:24:28 +00:00
Vladislav Bolkhovitin
634c1e69aa Fix spurious BUG when parse_type != SCST_USER_PARSE_STANDARD
Changeset 4224 introduced EXTRACHECKS for valid lba/data_len and state
at the end of the parsing phase of command processing.
However, the checks do not account for deferral of parsing to userland,
as occurs when SCST_USER_PARSE_CALL or SCST_USER_PARSE_EXCEPTION are specified.
In such cases the checks report errors on commands that userland has not yet
had an opportunity to parse.

NOTE: this includes a refactoring of the EXTRACHECKS to improve clarity.
      The rework is not exactly equivalent to the original code, but does
      conform to the comments describing the original code.
      Specifically, the original code would not trap an illegal command state
      unless there was also an illegal lba or data_len.

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



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5275 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-02-08 01:52:03 +00:00
Vladislav Bolkhovitin
4d0fb300fe scst_user: Convert sgv_purge_interval to jiffies before use
The sgv_purge_interval from userland is passed down without conversion to
jiffies. Yet, if it is zero, the default value is (60 * HZ).
Convert to jiffies before passing down.

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



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5274 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-02-08 01:04:27 +00:00
Bart Van Assche
07dbfb28a6 scst_vdisk: Build fix for kernels 2.6.27..2.6.30
add_to_page_cache_lru and __lock_page_killable are exported since
kernel version 2.6.30. See also patch "Staging: pohmelfs: kconfig/makefile
and vfs changes" (commit 18bc0bbd162e3eb3e7ea2953c315ad4113a57164;
included in kernel v2.6.30). 

Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5273 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-02-07 12:46:39 +00:00
Bart Van Assche
91d9391194 scst_user, rt: Wake command processing thread when needed
In a fully-preemptible realtime kernel (CONFIG_PREEMPT_RT_FULL=y),
SCSI commands from an initiator time out because the userland target
application is never woken to process them.

This is because in a fully-preemptible realtime kernel, soft-IRQ
(tasklet) execution always occurs in a ksoftirqd thread and
preempt_count is not manipulated on soft-IRQ processing entry/exit.
This makes in_interrupt() useless for determining whether soft-IRQ
processing is occurring; instead, in_serving_softirq() should be
used for that purpose.

Signed-off-by: Steven J. Magnani <steve@digidescorp.com>
[bvanassche: Elaborated source code comment]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5272 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-02-07 12:43:25 +00:00
Bart Van Assche
ad681d7c5a nightly build: Update kernel versions
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5271 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-02-07 08:11:28 +00:00
Bart Van Assche
1a367a14c8 regression tests: Run the 2.6.26..2.6.32 tests on the sysfs code instead of procfs
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5270 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-02-07 07:45:15 +00:00
Bart Van Assche
987f9bd776 scst_sysfs: Fix a build failure on kernels 2.6.2[678]
The sysfs API is supported from kernel 2.6.26 on and uses the swap()
macro while the swap() macro was introduced in kernel 2.6.29. Hence
provide a definition of the swap() macro for kernels before 2.6.29.

Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
[bvanassche: Moved swap() definition a few lines down and added #ifndef/#endif]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5269 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-02-07 07:31:38 +00:00
Bart Van Assche
59f48c1f33 ib_srpt: Avoid that disabling a target triggers a race condition
Avoid that disabling a target triggers a race condition with
SRP relogin. At least in theory this race condition could result
in a kernel crash.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5268 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-02-06 14:17:49 +00:00
Bart Van Assche
0a47e2e1ff qla2x00t: Re-sync help text with the code
The ql2xfdmienable module parameter defaults to 1, but the help text
claims it defaults to zero.

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


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5267 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-02-06 13:38:28 +00:00
Bart Van Assche
022a8a6847 Hush Coverity warning of scst_ws_push_single_write() uninitialized pointer
Coverity warns that sgv may be used uninitialized. The warning
applies to WRITE SAME commands with LBDATA == PBDATA == 0 (replicate
a single block of user data into the specified LBA range).

The warning appears to be spurious - when LBDATA == PBDATA == 0,
scst_ws_write_cmd_finished() will not use the uninitialized value
saved by scst_ws_push_single_write().

Move initialization of sgv earlier in the function to quiesce the warning.

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


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5266 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-02-06 13:30:06 +00:00
Bart Van Assche
cf699a6d95 scst_local: Fix a kernel oops for kernel versions < 2.6.37
Avoid that scst_local triggers "BUG: unable to handle kernel NULL
pointer dereference" on kernel versions before 2.6.37. This patch
fixes a regression introduced via patch "scst_local: Avoid
deadlock during module removal with kernel 3.6" (trunk r4566).

Reported-by: Sebastian Herbszt <herbszt@gmx.de>


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5264 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-02-06 12:46:51 +00:00
Bart Van Assche
be9a78a844 scripts/list-source-files: Handle Mercurial subdirectories properly
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5260 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-02-03 09:03:03 +00:00
Vladislav Bolkhovitin
d61106a512 scst_vdisk: Sort "add_device_parameters" alphabetically
Signed-off-by: Bart Van Assche <bvanassche@acm.org>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5256 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-31 02:35:20 +00:00
Vladislav Bolkhovitin
4cd021ae86 scst_vdisk: Check that "filename" is specified at most once
Signed-off-by: Bart Van Assche <bvanassche@acm.org>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5255 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-31 02:33:11 +00:00
Vladislav Bolkhovitin
bd53fcd860 scst_pres: Simplify PR locking
Since the time during which a PR read or write lock is held is short,
use a mutex to implement PR read and write locking. So although this
patch excludes multiple simultaneous readers that shouldn't affect the
time needed to process a PR operation measurably.

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



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5254 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-31 02:32:02 +00:00
Bart Van Assche
41597bc469 nightly build: Add kernel version 3.13.1
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5253 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-30 09:31:32 +00:00
Bart Van Assche
777aee43d5 scripts/kernel-functions: Add a bug fix for the kernel 3.13 series that is not yet present in the kernel 3.13 stable series
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5252 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-30 09:30:18 +00:00
Bart Van Assche
7f1c22cbee nightly build: Add kernel 3.13 build infrastructure
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5251 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-30 09:16:27 +00:00
Vladislav Bolkhovitin
e6fd59bda4 Update for 3.13 kernels
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5250 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-30 02:32:44 +00:00
Vladislav Bolkhovitin
927748befa [PATCH 2/2] scst_sysfs: Add I/O statistics per target
Although it is possible to obtain these statistics by iterating over
all sessions and by computing the sum of the per-target statistics,
make per-target statistics directly available such that these can be
retrieved easily.

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



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5249 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-30 01:41:54 +00:00
Vladislav Bolkhovitin
c905b530b7 [PATCH 1/2] scst_sysfs: Make it easier to add new target sysfs attributes
This patch does not change any functionality.

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



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5248 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-30 01:40:48 +00:00
Vladislav Bolkhovitin
e9ef3fa2d1 Better version of the previous patch
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5247 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-29 04:16:58 +00:00
Vladislav Bolkhovitin
b0a7ab2210 Put CDB control byte parsing in one place
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5246 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-29 03:30:24 +00:00
Vladislav Bolkhovitin
00851a7501 Merge of adding iSER web page and copyright updates from the iSER branch
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5241 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-28 05:17:26 +00:00
Vladislav Bolkhovitin
f635cfd011 vdisk_exec_format_unit(): Fix a sparse warning
Avoid that sparse reports the following warning:

warning: 'prot_usage' may be used uninitialized in this function

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



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5227 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-28 03:57:19 +00:00
Vladislav Bolkhovitin
fba7f097b7 In WT mode blockio flush is not needed, so skip this check
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5226 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-28 03:54:48 +00:00
Bart Van Assche
08623d3115 ib_srpt: Clarify a log message
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5225 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-27 19:01:24 +00:00
Bart Van Assche
fc0dc41452 nightly build: Update kernel versions
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5224 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-26 13:52:52 +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
Vladislav Bolkhovitin
0611548744 Fix broken link from scst/README to XFS FAQ reported by Sebastian Herbszt <herbszt@gmx.de>
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5222 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-22 03:03:04 +00:00
Vladislav Bolkhovitin
85ea152e0c [PATCH] scst: Remove casts from INIT_DELAYED_WORK() statements
This is a source code cleanup patch that does not change any functionality.

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



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5221 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-22 02:57:49 +00:00
Bart Van Assche
2ee6484c6d scst: RHEL 5 build fix
Kernel versions before 2.6.26 do not have a definition for the
ACCESS_ONCE() macro, hence provide one.
    
Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5220 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-21 14:35:22 +00:00
Bart Van Assche
72c1662421 __scst_check_deferred_commands_locked(): Add sparse locking annotation
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5219 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-21 12:03:23 +00:00
Bart Van Assche
d602302863 scst: Rework RESERVE / RELEASE handling
Reduce the number of reservation state variables from (one per
device + one per session) to one per device. Introduce helper
functions for manipulating the SPC-2 reservation state.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5218 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-21 08:09:01 +00:00
Bart Van Assche
e2fb6f4080 mpt: Use PDE_DATA if available
Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5217 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-19 19:26:29 +00:00
Bart Van Assche
8db5286a87 mvsas_tgt: Fix various checkpatch complaints, mainly about whitespace usage
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5216 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-19 19:07:18 +00:00
Bart Van Assche
ed9ed528c8 mvsas_tgt: Fix sparse warnings
Also, remove unused variables, data structures and functions.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5215 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-19 18:47:02 +00:00
Bart Van Assche
ee1f37d2a5 mvsas_tgt: Port to kernel 3.12
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5214 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-19 18:46:06 +00:00
Bart Van Assche
5fb1240532 mvsas_tgt: Build fix for kernel versions <= 2.6.32
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5213 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-19 18:45:09 +00:00
Bart Van Assche
88a7e1764b mpt: Fix a use-after-free detected by smatch
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5212 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-19 09:48:41 +00:00
Bart Van Assche
80c6aa0e36 mpt: Fix warnings reported by sparse
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5211 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-19 09:46:50 +00:00
Bart Van Assche
7fd1822b4d mpt: Fix more checkpatch warnings
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5210 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-19 09:45:32 +00:00
Bart Van Assche
6a08ef3fd9 mpt: Checkpatch - remove parentheses from return statements
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5209 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-19 09:20:01 +00:00
Bart Van Assche
609fe60a8f mpt: Fix more checkpatch warnings
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5208 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-19 09:17:45 +00:00
Bart Van Assche
c89a883339 mpt: Fix another whitespace error reported by checkpatch
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5207 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-19 09:07:26 +00:00
Bart Van Assche
69ee3d89a0 mpt: Do not explicitly initialize statics to zero
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5206 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-19 09:06:13 +00:00
Bart Van Assche
b065605333 mpt: Avoid that checkpatch complains about stm_[gs]et_dma_addr()
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5205 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-19 09:04:16 +00:00
Bart Van Assche
87c68579ca mpt: Fix whitespace errors reported by checkpatch
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5204 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-19 08:59:20 +00:00