Commit Graph
868 Commits
Author SHA1 Message Date
Bart Van Assche d85e33dbcc iscsi-scst: Serialize socket disconnect calls properly
This patch fixes the following kernel complaint:

WARNING: suspicious RCU usage
include/net/sock.h:1907 suspicious rcu_dereference_protected() usage!
other info that might help us debug this:
rcu_scheduler_active = 2, debug_locks = 1
no locks held by iscsi_conn_clea/18329.
stack backtrace:
Call Trace:
 dump_stack+0xa5/0xe6
 lockdep_rcu_suspicious+0x107/0x111
 tcp_disconnect+0x9ee/0xa60
 iscsi_tcp_conn_close+0x5d/0x90 [iscsi_scst]
 close_conn+0xcfe/0x1470 [iscsi_scst]
 close_conn_thr+0x54/0x80 [iscsi_scst]
 kthread+0x1bc/0x210
 ret_from_fork+0x24/0x30

Fixes: commit ba3062fe6b ("iscsi-scst: Improve connection shutdown time";
r297).


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8693 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-23 18:51:02 +00:00
Bart Van Assche 1379918d8a iscsi-scst/Makefile: Avoid duplicate exported symbol warnings for kernel v5.5
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8687 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-17 04:24:55 +00:00
Bart Van Assche a169500590 Makefiles: Use KBUILD_EXTRA_SYMBOLS instead of copying Module.symvers
Copying Module.symvers is the oldest supported method for building external
kernel modules that depend on another external kernel module. Since support
for that method will be removed from Linux kernel v5.5, use
KBUILD_EXTRA_SYMBOLS instead to specify the external symbols SCST kernel
modules depend on. Support for KBUILD_EXTRA_SYMBOLS was introduced in
upstream kernel v2.6.26 so this patch drops support for kernels before
v2.6.26.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8686 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-16 23:29:42 +00:00
Bart Van Assche ecaab978f0 scst, scstadmin, ...: Bump the version number to 3.5.0-pre
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8683 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-06 05:28:56 +00:00
Bart Van Assche fa156aa40d scripts/update-version: Fix the code for updating the scstadmin version number
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8681 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-04 05:00:49 +00:00
Bart Van Assche 09edff95e3 isert-scst: Bump the version number
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8677 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-04 04:54:05 +00:00
Bart Van Assche ce557f2f1c scst, fcst, iscsi-scst, srpt, ...: Bump version number to 3.4.0
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8674 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-03 04:22:16 +00:00
Bart Van Assche f22d4bb63b scst, fcst, iscsi-scst, qla2x00t, srpt: Add module namespace support
This patch adds support for kernel module namespaces. This patch is essential
when using SCST in combination with kernel version v5.4 or later.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8673 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-11-30 00:54:20 +00:00
Bart Van Assche 810231050f iscsi-scst/Makefile: Improve MOFED support for Debian systems
Instead of only checking the mlnx-ofed-kernel-dkms package name, also check
the mlnx-ofed-kernel-modules package name.

Signed-off-by: Ville Skytta <ville.skytta@iki.fi>
[ bvanassche: extracted this change from a larger patch ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8667 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-11-23 19:54:54 +00:00
Bart Van Assche 8bdb6a625a iscsi-scst/Makefile: Fix grabbing OFED_VERS from deb version
Fixes: e7ccfcf213 ("iscsi-scst/Makefile, Ubuntu: Simplify code for version querying")
Signed-off-by: Ville Skytta <ville.skytta@iki.fi>


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8666 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-11-23 06:39:42 +00:00
Bart Van Assche c6c6a94965 iscsi: Remove a debug assert
Remove this debug assert because it a write residual can happen, e.g. if the
expected transfer length exceeds the Data Out buffer length. This statement
was hit by the following CDB, submitted by the libiscsi regression tests:

[14896]: scst: scst_parse_cmd:1235:Warning: expected transfer length 0 (DIF 0) for opcode WRITE(10) (handler vdisk_fileio, target iscsi) doesn't match decoded value 512
[14896]: scst_parse_cmd:1243:Suspicious CDB:
 (h)___0__1__2__3__4__5__6__7__8__9__A__B__C__D__E__F
   0: 2a 00 00 00 00 00 00 00 01 00   *.........



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8659 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-11-17 19:19:09 +00:00
Bart Van Assche a50b32ca42 isert-scst: Change unlikely(IS_ERR(...)) into IS_ERR(...)
Surrounding IS_ERR(...) with unlikely() is redundant. Remove the redundant
unlikely() annotations.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8623 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-11-02 23:03:18 +00:00
Bart Van Assche 4c32934243 iscsi-scst/Makefile_user_space_only: Synchronize this file with iscsi-scst/Makefile
Signed-off-by: Ivan Orlov <orlov@soligran.ru>


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8614 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-10-09 02:40:14 +00:00
Bart Van Assche 9add460430 Suppress module signing error messages
Suppress the following error messages:

- SSL error:02001002:system library:fopen:No such file or directory: crypto/bio/bss_file.c:72
- SSL error:2006D080:BIO routines:BIO_new_file:no such file: crypto/bio/bss_file.c:79
sign-file: certs/signing_key.pem: No such file or directory

 


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8596 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-09-29 22:33:03 +00:00
Bart Van Assche eb03ee602b iscsi-scst/Makefile: Fix a syntax error that was introduced in r8593
Reported-by: Rob Turk <robtu@rtist.nl>


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8594 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-09-29 22:09:05 +00:00
Bart Van Assche 84725029ce scst: Add support for signing SCST kernel modules
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8593 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-09-29 04:42:40 +00:00
Bart Van Assche f6371c5d5e Makefiles: Run depmod also on Ubuntu systems after module installation
Fixes: e902f79ecf ("kernel module installation: Skip "depmod" when building an RPM"; r5612)



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8582 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-09-15 00:29:55 +00:00
Bart Van Assche 521c0261ec iscsi-scst/conftest/bad_wr_mod: Fix a Coverity complaint
Fix the following Coverity complaint:

CID 326815 (#1 of 1): Explicit null dereferenced (FORWARD_NULL)
2. var_deref_model: Passing null pointer qp to ib_post_recv, which dereferences it.



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8568 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-08-25 22:55:48 +00:00
Bart Van Assche f623815252 isert-scst: Unbreak the build for kernel versions <= v4.8
Fixes: 36c0648b7e ("isert-scst: Fix the build against kernel v5.3") / r8475.



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8482 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-07-25 04:32:38 +00:00
Bart Van Assche 36c0648b7e isert-scst: Fix the build against kernel v5.3
In kernel v5.3 the ib_destroy_cq() return type has been changed from 'int'
into 'void'.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8475 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-07-24 01:12:06 +00:00
Bart Van Assche ceafec13e9 iscsi-scst/Makefile: Avoid that 'make' reports an error if InfiniBand support is disabled in the kernel
Reported-by: Goran Bruns <goeran.bruns@gmx.de>


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8419 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-06-08 01:56:34 +00:00
Bart Van Assche 506aac2508 iscsi-scst: Detect at compile time whether or not max_recv_sge is available
Signed-off-by: Sergey Gorenko <sergeygo@mellanox.com>


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8399 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-05-31 01:21:49 +00:00
Bart Van Assche 8e862c6d9b iscsi-scst, srpt: Restore MOFED_MAJOR and MOFED_MINOR definitions
This patch reverts commit bcdb25e550 (r7363).


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8397 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-05-30 13:41:27 +00:00
Bart Van Assche aa91d1cd95 iscsi-scst: Work around a compatibility problem between MOFED and DTRACE
When building against Oracle Linux + MOFED the build fails unless if
DTrace is disabled. Hence disable DTrace for the isert-scst module if
MOFED is detected.

Signed-off-by: Sergey Gorenko <sergeygo@mellanox.com>
[ bvanassche: Left out one empty OFED_CONFIG assignment ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8396 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-05-30 03:14:44 +00:00
Bart Van Assche 81bc0e717a iscsi-scst: Suppress a false positive Coverity complaint
Avoid that Coverity complains about using a scalar as an array.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8369 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-05-27 17:31:40 +00:00
Bart Van Assche e945943861 iscsi-scst/usr: Improve coding style
This patch only affects code formatting and does not change any functionality.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8356 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-05-09 16:26:46 +00:00
Bart Van Assche 22f1132073 Makefiles: Rework build mode switching
Move the build_mode file from the top level into the scst directory. Write
build mode defines into scst/include/build_mode.h and include that file
directly or indirectly in all source files that depend on these #defines.
This approach has the advantage that "make clean" does no longer has to
be run when switching between build modes because the kernel build system
recognizes build_mode.h as a dependency and triggers a rebuild of all
source files that directly or indirectly include the build_mode.h header
file.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8347 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-05-05 18:19:38 +00:00
Bart Van Assche 33f2f4a064 Makefiles: Only read the build_mode file if building inside the SCST tree
This patch avoids that the build_mode file is read when applying the
generate-kernel-patch output to the kernel tree and when building the
kernel tree.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8272 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-23 17:11:26 +00:00
Bart Van Assche 01e8d4aadd iscsi-scst, isert-scst: Make this driver build against RHEL 8
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8259 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-20 16:38:51 +00:00
Bart Van Assche de28843d9f Makefiles: Simplify Module.symvers handling
This patch does not change any functionality.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8122 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-03-31 21:13:13 +00:00
Bart Van Assche 6cb1d158e7 Makefiles: Fix $(SCST_DIR)
Fixes: dc7e039124 ("Makefiles: Remove most instances of $(SCST_INC_DIR)") (r8079)


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8121 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-03-31 21:11:17 +00:00
Bart Van Assche dc7e039124 Makefiles: Remove most instances of $(SCST_INC_DIR)
Move the $(SCST_INC_DIR) definitions from the out-of-tree sections into
the in-kernel sections. Since SCST is now distributed as a single tar
archive, only support in-tree builds with $(SCST_INC_DIR) and $(SCST_DIR).


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8079 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-03-25 22:10:21 +00:00
Bart Van Assche 70d3c72779 Makefiles: Use ccflags-y instead of EXTRA_CFLAGS
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8076 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-03-25 19:56:17 +00:00
Bart Van Assche 74e5b31b95 Makefiles: Use cc-option instead of enable-Wextra
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8075 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-03-25 19:55:15 +00:00
Bart Van Assche 623d4e6d0a Makefiles: Use build_mode instead of modifying the Makefile when switching the build mode
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8074 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-03-25 19:53:39 +00:00
Bart Van Assche a94c8eaf0f scst: Move the set_fs() calls into scst_{read,write}v()
This patch does not change any functionality.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8066 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-03-21 02:56:46 +00:00
Bart Van Assche 3b76bc5b1f Use KERNEL_DS instead of get_ds()
This patch is necessary to make SCST work with Linux kernel v5.1 and
does not change any functionality. See also upstream commit 736706bee329
("get rid of legacy 'get_ds()' function").



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8057 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-03-18 00:24:56 +00:00
Bart Van Assche 0655c3e76a iscsi-scst: Fix a use-after-free
Avoid that KASAN reports the following complaint:

BUG: KASAN: slab-out-of-bounds in f/0xdc4 [iscsi_scst]
Read of size 8 at addr ffff888be35fd0ec by task iscsiwr0_71/3289

CPU: 42 PID: 3289 Comm: iscsiwr0_71 Tainted: G
sos.debug #1
Hardware name: To be filled by O.E.M.
Call Trace:
 dump_stack+0x8e/0xc8
 print_address_description+0x73/0x238
 kasan_report+0x228/0x251
 check_memory_region+0x126/0x12c
 __asan_loadN+0xf/0x11
 write_data+0x5df/0xdc4 [iscsi_scst]
 iscsi_do_send+0x20/0x67 [iscsi_scst]
 iscsi_send+0x1f0/0x574 [iscsi_scst]
 scst_do_job_wr+0x2ef/0x549 [iscsi_scst]
 istwr+0x366/0x4a2 [iscsi_scst]
 kthread+0x1df/0x1ef
 ret_from_fork+0x3a/0x50

Allocated by task 3063:
 save_stack_trace+0x1b/0x1d
 kasan_kmalloc.part.1+0x62/0xee
 kasan_kmalloc+0x7f/0x8b
 kasan_slab_alloc+0x12/0x14
 kmem_cache_alloc+0x13d/0x27a
 mempool_alloc_slab+0x15/0x17
 mempool_alloc+0xdb/0x1f3
 scst_alloc_aen+0x96/0x223 [scst]
 scst_gen_aen_or_ua+0x16b/0x3d2 [scst]
 scst_capacity_data_changed+0x147/0x1cd [scst]
 vdev_size_process_store+0x1b5/0x1f4 [scst_vdisk]
 scst_process_sysfs_works+0x187/0x2a1 [scst]
 sysfs_work_thread_fn+0x301/0x42b [scst]
 kthread+0x1df/0x1ef
 ret_from_fork+0x3a/0x50

Reported-by: Marc Smith <msmith626@gmail.com>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8056 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-03-18 00:23:05 +00:00
Bart Van Assche 0a01b504e0 iscsi-isert: Avoid that reading the target_ip sysfs attribute triggers a kernel oops
conn->sock is set by the TCP/IP transport but not by the iSER transport.
Hence check the conn->sock pointer from common code before dereferencing it.

Reported-by: Doug Dumitru <doug@easyco.com>


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8051 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-03-11 03:58:30 +00:00
Bart Van Assche d1f7b0aae8 iscsi-scst: Fix multiple checkpatch warnings
This patch does not change any functionality.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8050 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-03-11 03:57:09 +00:00
Bart Van Assche c8d8d7fbbe isert-scst: Fix several checkpatch warnings
This patch does not change any functionality.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8047 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-03-11 03:47:48 +00:00
Bart Van Assche 87d82bfa8f Remove documentation references to procfs
Now that procfs has been removed, remove the references to procfs from
the documentation.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8000 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-03-02 20:06:25 +00:00
Bart Van Assche 08e532715d Remove procfs support
Since all RHEL/CentOS 5 users have upgraded to a newer version, procfs
support is no longer necessary. Hence remove procfs support. This patch
has been generated as follows:

git grep -lw CONFIG_SCST_PROC iscsi-scst qla2x00t scst scst_local srpt |\
  while read f; do
    echo ${f}
    unifdef -U CONFIG_SCST_PROC ${f} >${f}.out
    mv ${f}.out ${f}
  done

followed by two small manual edits in scst/include/scst.h and also in
qla2x00t/qla2x00-target/qla2x00t.c.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7999 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-03-02 20:04:25 +00:00
Bart Van Assche 9df67df132 iscsi-scst: Fix 32-bit compiler warnings
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7910 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-02-08 03:43:35 +00:00
Bart Van Assche d3e2f5ab99 Makefiles: Stop using $(SUBDIRS)
This patch avoids that the following warning is reported when building
against kernel v4.21:

================= WARNING ================
'SUBDIRS' will be removed after Linux 5.3
Please use 'M=' or 'KBUILD_EXTMOD' instead
==========================================


A quote from an upstream kernel patch:

commit 07e5823127155b3a29003aca926f87c9843f6810
Author: Andrew Morton <akpm@osdl.org>
Date:   Mon Apr 12 01:05:40 2004 -0700

    [PATCH] kbuild: external module support
    
    From: Sam Ravnborg <sam@ravnborg.org>
    
    Based on initial patch from Andreas Gruenbacher there is now better support
    for building external modules with kbuild.
    
    The preferred syntax is now:
    make -C $KERNELSRC M=$PWD
    
    but the old syntax:
    make -C $KERNELSRC SUBDIRS=$PWD modules
    will remain supported.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7851 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-12-31 19:03:14 +00:00
Bart Van Assche bf3f677040 isert-scst: Fix sparse warnings related to poll functions
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7837 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-11-28 06:39:48 +00:00
Bart Van Assche 1587638134 Remove support for "make enable_proc" and "make disable_proc"
Since RHEL 5 and kernel versions before 2.6.26 rely on procfs support,
this patch removes support for RHEL 5.x and also for kernel versions
before 2.6.26.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7829 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-11-22 22:13:40 +00:00
Bart Van Assche df02132689 iscsi-scst: Remove the no longer supported put_page_callback patches
See also trunk r7809.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7811 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-11-17 22:31:57 +00:00
Bart Van Assche 5a1474df43 scst, iscsi-scst: Port to Linux kernel v4.20
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7810 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-11-10 17:51:41 +00:00
Bart Van Assche e79fcbd8f3 iscsi-scst: Remove zero-copy TCP/IP support
Zero-copy TCP/IP support is deprecated since a while and is no longer
supported for recent kernels. Hence remove it and also all references
to zero-copy TCP/IP support.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7809 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-11-10 17:50:59 +00:00