Commit Graph

6362 Commits

Author SHA1 Message Date
Bart Van Assche
9bb911c130 qla2x00t-32gbit: Fix Relogin to prevent modifying scan_state flag
Relogin fails to move forward due to scan_state flag indicating device is
not there. Before relogin process, Session delete process accidently
modified the scan_state flag.

[ commit 8b5292bcfcacf15182a77a973a98d310e76fd58b upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8529 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-08-25 01:47:58 +00:00
Bart Van Assche
591d4d7319 qla2x00t-32gbit: Reject EH_{abort|device_reset|target_request}
Reject eh_{abort|device_reset|target_reset} when rport is being torn down
or chip is down.

[ commit 7f4374e67b3046c9628cf0ab93a117704a38e95d upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8528 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-08-25 01:42:45 +00:00
Bart Van Assche
7c020b4dbd qla2x00t-32gbit: Skip FW dump on LOOP initialization error
Firmware dump captured during LOOP Init error does not yield any
significant information.  This patch removes call to trigger firmware dump
collection during Loop Initialization.

[ commit 5e5402c147083786db2238302e25c44b7a7dc5e9 upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8527 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-08-25 01:42:11 +00:00
Bart Van Assche
e57539b76b qla2x00t-32gbit: Use Correct index for Q-Pair array
For target mode, the default number of Q-Pairs allowed to use is 2. If the
number of Q-Pairs allocated is lower than the default Q-Pairs, then lower
value should be the set as default.

[ commit 178235f43ea142cf0f07dba67657494fcec21254 upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8526 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-08-25 01:41:37 +00:00
Bart Van Assche
92c488d37f qla2x00t-32gbit: Fix abort timeout race condition
If an abort times out, the Abort IOCB completion and Abort timer can race
against each other. This patch provides unique error code for timer path to
allow proper cleanup.

[ commit 0c6df59061b23c7a951836d23977be34e896d3da upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8525 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-08-25 01:40:40 +00:00
Bart Van Assche
5c1d76e9f3 qla2x00t-32gbit: Fix different size DMA Alloc/Unmap
Fix the following complaint:

qla2xxx 0000:05:00.0: DMA-API: device driver frees DMA memory
    with different size [device address=0x00000006198b0000] [map size=32784 bytes]
    [unmap size=8208 bytes]
RIP: 0010:check_unmap+0x7a2/0x1750
Call Trace:
 debug_dma_free_coherent+0x1b5/0x2d5
 dma_free_attrs+0x7f/0x140
 qla24xx_sp_unmap+0x1e2/0x610 [qla2xxx]
 qla24xx_async_gnnft_done+0x9c6/0x17d0 [qla2xxx]
 qla2x00_do_work+0x514/0x2200 [qla2xxx]

[ commit d376dbda187317d06d3a2d495b43a7983e4a3250 upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8524 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-08-25 01:39:35 +00:00
Bart Van Assche
566fb0424f qla2x00t-32gbit: Fix DMA unmap leak
With debug kernel we see following wanings indicating memory leak.

[28809.523959] WARNING: CPU: 3 PID: 6790 at lib/dma-debug.c:978
dma_debug_device_change+0x166/0x1d0
[28809.523964] pci 0000:0c:00.6: DMA-API: device driver has pending DMA
allocations while released from device [count=5]
[28809.523964] One of leaked entries details: [device
address=0x00000002aefe4000] [size=8208 bytes] [mapped with DMA_BIDIRECTIONAL]
[mapped as coherent]

Fix this by unmapping DMA memory.

[ commit 5d328de64d89400dcf9911125844d8adc0db697f upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8523 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-08-25 01:37:24 +00:00
Bart Van Assche
a2c285efaf qla2x00t-32gbit: Replace vmalloc + memset with vzalloc
Use vzalloc instead of using vmalloc to allocate memory and then zeroing it
with memset.  This simplifies the code.

[ commit 56cc8fae5f7e9f38cb367754c52491ba1645d1bf upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8522 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-08-25 01:36:09 +00:00
Bart Van Assche
b4b1569ed0 qla2x00t-32gbit: Remove unnecessary null check
A null check before dma_pool_destroy is redundant, so remove it. This is
detected by coccinelle.

[ commit 0b3b6fe299c471e44ed8713b7a602882626e693f upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8521 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-08-25 01:33:38 +00:00
Bart Van Assche
6f6114a7c0 qla2x00t-32gbit: Revert r8322
Since r8322 was the result of an incorrect application of an upstream patch,
revert it.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8520 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-08-25 01:26:01 +00:00
Bart Van Assche
6ab30263a4 qla2x00t-32gbit: Minimize diff with upstream
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8519 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-08-25 01:21:41 +00:00
Bart Van Assche
398d41e753 scst: Revert "Increase tgt_dev_cmd_count by one" (r8465)
Because of the previous patch, r8465 is no longer necessary.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8518 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-08-23 03:44:52 +00:00
Bart Van Assche
92c6e461f0 scst: Revert "scst: Free removed LUNs asynchronously" (r8478)
r8478 was not necessary to fix the reported problem. Additionally, it
introduced a new problem, namely that detach_tgt was not called if the
associated device was deleted after the LUN was deleted and before it
was freed.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8517 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-08-23 03:43:33 +00:00
Bart Van Assche
4aa7817dbb scst_copy_mgr: Avoid that device deletion sporadically causes a hang
Avoid that deleting a device concurrently with scst_cm_init_inq_finish()
causes command processing to hang.

Reported-by: valera <valer4ik@users.sourceforge.net>
Fixes: 0bb6de9471 ("scst_vdisk: Avoid that LUN refresh triggers a general protection fault" / r7101)


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8515 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-08-21 21:34:04 +00:00
Bart Van Assche
456359e129 scst_copy_mgr: Reduce code duplication
This patch does not change the behavior of the copy manager.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8514 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-08-21 21:33:16 +00:00
Bart Van Assche
e9c16240df scst: Improve several source code comments
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8513 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-08-21 21:32:05 +00:00
Bart Van Assche
f16c5d1b2e scst: Rework scst_prepare_request_sense()
This patch makes the implementation of scst_prepare_request_sense() consistent
with the other code that submits internal commands.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8512 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-08-21 21:31:31 +00:00
Bart Van Assche
dd52454052 scst: Introduce struct scst_icmd_priv
This patch does not change any functionality but improves source code
readability.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8511 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-08-21 21:30:39 +00:00
Bart Van Assche
740f3a6e63 scst: Make device deletion again synchronous
Some scripts that use the SCST sysfs interface depend on filp_close()
having been called before device deletion via the sysfs interface
finishes. Hence make device deletion again synchronous.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8510 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-08-19 02:59:18 +00:00
Bart Van Assche
377e720b26 scst: Add a trailing newline when showing the cpu_mask sysfs parameter
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8509 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-08-19 02:58:22 +00:00
Bart Van Assche
9a4b39b604 nightly build: Update kernel versions
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8508 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-08-16 13:53:37 +00:00
Bart Van Assche
59c9780344 ChangeLog: Describe SCST 3.4 changes
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8507 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-08-16 03:19:28 +00:00
Bart Van Assche
cd1a47f85e scst, copy manager: Skip updating if auto CM assignment is disabled
Reported-by: James McCarthy <mccarthy1029@gmail.com>


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8504 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-08-14 23:14:11 +00:00
Bart Van Assche
f2b226ee39 scst, copy manager: Only submit INQUIRY if LUN lookup succeeded
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8503 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-08-14 23:10:53 +00:00
Bart Van Assche
c6e8013f48 scst: Only free a device after all associated commands and LUNs have finished
Merge scst_free_device() and scst_finally_free_device() into a single
function. Increase dev->refcnt when registering a device or virtual
device. Kill and decrease dev->refcnt when unregistering a device or
virtual device. These changes ensure that a scst_free_device() is
only called after all users (commands and tgt_devs) have stopped
accessing the SCST device.

Fixes: 3f2d50b589 ("scst: Do not suspend command processing when deleting a device"; r8067)



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8501 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-08-12 01:41:26 +00:00
Bart Van Assche
4e5548c409 scst: Verify dev_exec_cmd_list protection at runtime
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8500 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-08-12 01:39:37 +00:00
Bart Van Assche
806b143ce6 nightly build: Update kernel versions
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8499 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-08-09 17:31:33 +00:00
Bart Van Assche
e84417176b nightly build: Update kernel versions
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8498 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-08-07 00:54:47 +00:00
Bart Van Assche
b20c82a521 scst: Complain about unbalanced reference counts in the command processing path
There is no evidence that this is possible. This patch is a debugging help.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8497 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-08-05 01:44:34 +00:00
Bart Van Assche
5da933cc47 scst: Fix a race condition between LUN translation and LUN removal
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8496 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-08-05 01:43:41 +00:00
Bart Van Assche
bb7a0fca23 scst: Introduce scst_tgt_dev_dec_cmd_count()
This patch does not change any functionality.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8495 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-08-05 01:43:03 +00:00
Bart Van Assche
e6eadb58f9 nightly build: Update kernel versions
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8494 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-08-04 15:57:43 +00:00
Bart Van Assche
3f17d52519 nightly build: Update kernel versions
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8490 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-07-31 13:55:38 +00:00
Bart Van Assche
6706cdd5f0 nightly build: Update kernel versions
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8489 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-07-28 14:39:21 +00:00
Bart Van Assche
0e38eb1bd1 nightly build: Update kernel versions
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8488 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-07-26 13:51:21 +00:00
Bart Van Assche
d9d4fe83c5 scst: Queue tgt_dev free work on system_long_wq
scst_free_tgt_dev() waits until pending I/O commands have finished and hence
can take a while.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8487 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-07-26 01:26:03 +00:00
Bart Van Assche
7c46bc3630 scst: Backport {init,destroy}_rcu_head()
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8484 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-07-25 04:36:15 +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
92eefa7bb5 nightly build: Update kernel versions
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8481 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-07-24 18:19:31 +00:00
Bart Van Assche
5930b4db71 scst: Fix the MOFED build
Reported-by: Dmitry Popovich <dsp@mvdnet.org>


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8479 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-07-24 15:33:53 +00:00
Bart Van Assche
7426031e91 scst: Free removed LUNs asynchronously
Since scst_free_tgt_dev() is called as soon as the tgt_dev refcount
drops to zero and since scst_del_tgt_dev() decrements that reference
count, remove all scst_free_tgt_dev() calls that follow a
scst_del_tgt_dev() call. Set nr_deleted_tgt_devs in scst_acg_add_lun()
to -1 to avoid that all scst_del_tgt_dev() calls try to free the
associated acg_dev.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8478 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-07-24 02:19:54 +00:00
Bart Van Assche
cb8873ec0f scst: Micro-optimize scst_del_tgt_dev()
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8477 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-07-24 01:15:19 +00:00
Bart Van Assche
8064fdcf34 scst: Move the code that decrements dev->not_pr_supporting_tgt_devs_num
A later patch will introduce a delay between deleting and freeing a tgt_dev.
Move the code that decrements dev->not_pr_supporting_tgt_devs_num from the
function that frees a tgt_dev into the function that deletes a tgt_dev such
that the decrement code does not get delayed.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8476 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-07-24 01:13:41 +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
0ac23deee2 scst: Introduce tgt_dev.tgtt
A later patch will free tgt_devs after an RCU grace period. Make it
safe to access the target template pointer after an RCU grace period.



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8474 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-07-24 01:09:25 +00:00
Bart Van Assche
89b1c2fb99 scst: Remove a superfluous synchronize_rcu() call
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8473 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-07-23 21:06:45 +00:00
Bart Van Assche
1a15ee560c scst: Fix __scst_init_cmd()
Fixes: 5b0f9ef0b9 ("scst: Increase tgt_dev_cmd_count by one") / r8465.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8472 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-07-23 21:06:03 +00:00
Bart Van Assche
98cbaa121f scst: Revert r8466
Since r8466 is causing trouble, revert it temporarily.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8471 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-07-23 19:18:38 +00:00
Bart Van Assche
8e2391d3d3 nightly build: Update kernel versions
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8467 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-07-21 15:47:16 +00:00
Bart Van Assche
cf2167c2b9 scst: Free removed LUNs asynchronously
Instead of waiting until all commands associated with a LUN have finished,
do not wait and free LUN data structures once all associated commands have
finished. This commit should fix https://sourceforge.net/p/scst/tickets/23/.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8466 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-07-21 01:52:03 +00:00