The kvmalloc function was added in RHEL 7.5. So the backport is
needed for RHEL 7.4 and older. _COMPAT_LINUX_MM_H is checked as
well to avoid a conflict with the appropriate backport in MOFED.
Signed-off-by: Sergey Gorenko <sergeygo@mellanox.com>
[ bvanassche: fixed spelling in commit message ]
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8578 d57e44dd-8a1f-0410-8b47-8ef2f437770f
A recent change (.cmd_size in the SCSI host template) increased the
minimal kernel version required for qla2x00t-32gbit. Update
scripts/generate-kernel-patch.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8571 d57e44dd-8a1f-0410-8b47-8ef2f437770f
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
Fix the following Coverity complaint:
CID 344744 (#1 of 1): Resource leak (RESOURCE_LEAK)5. leaked_storage: Variable sioc going out of scope leaks the storage it points to.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8567 d57e44dd-8a1f-0410-8b47-8ef2f437770f
Fix the following Coverity complaint:
CID 347914 (#1 of 1): Unintentional integer overflow (OVERFLOW_BEFORE_WIDEN)overflow_before_widen: Potentially overflowing expression blocks << cmd->dev->block_shift - 9 with type uint32_t (32 bits, unsigned) is evaluated using 32-bit arithmetic, and then used in a context that expects an expression of type sector_t (64 bits, unsigned).
To avoid overflow, cast blocks to type sector_t.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8566 d57e44dd-8a1f-0410-8b47-8ef2f437770f
Avoid code duplication between qla2x00_alloc_offload_mem() and
qla2x00_alloc_fw_dump() by moving the FCE and EFT buffer allocation and
initialization to separate functions. Cleanly track failure and success by
making sure that the ha->eft, ha->fce and respective eft_dma, fce_dma
members are set if and only if the buffers are properly allocated and
initialized. Avoid pointless buffer reallocation. Eliminate some goto
statements. Make sure the fce_enabled flag is cleared when the FCE buffer
is freed.
[ commit 3cf92f4bfccbb3e378cd86dc46e09c2bc18cda26 upstream ]
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8559 d57e44dd-8a1f-0410-8b47-8ef2f437770f
In qla2x00_alloc_fw_dump(), an existing EFT buffer (e.g. from previous
invocation of qla2x00_alloc_offload_mem()) is freed. The buffer is then
re-allocated, but without setting the eft and eft_dma fields to the new
values.
[ commit edbd56472a636ab396f5ee6783e8438fa725a6ee upstream ]
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8558 d57e44dd-8a1f-0410-8b47-8ef2f437770f
A hang was observed in the fcport delete path when the device was
responding slow and an issue-lip path (results in session termination) was
taken.
Fix this by issuing logo requests unconditionally.
PID: 19491 TASK: ffff8e23e67bb150 CPU: 0 COMMAND: "kworker/0:0"
#0 [ffff8e2370297bf8] __schedule at ffffffffb4f7dbb0
#1 [ffff8e2370297c88] schedule at ffffffffb4f7e199
#2 [ffff8e2370297c98] schedule_timeout at ffffffffb4f7ba68
#3 [ffff8e2370297d40] msleep at ffffffffb48ad9ff
#4 [ffff8e2370297d58] qlt_free_session_done at ffffffffc0c32052 [qla2xxx]
#5 [ffff8e2370297e20] process_one_work at ffffffffb48bcfdf
#6 [ffff8e2370297e68] worker_thread at ffffffffb48bdca6
#7 [ffff8e2370297ec8] kthread at ffffffffb48c4f81
[ commit f00b3428a801 upstream ]
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8557 d57e44dd-8a1f-0410-8b47-8ef2f437770f
Instead of calling qla2x00_fcport_event_handler() and letting the switch
statement inside that function decide which other function to call, call
the latter function directly. Remove the event member from the event_arg
structure because it is no longer needed. Remove the
qla_handle_els_plogi_done() function because it is never called.
[ commit 897def2004213636ffe2e9ee6a75660c5b53b03d upstream ]
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8552 d57e44dd-8a1f-0410-8b47-8ef2f437770f
It is easy to mix up the QLA_* and the MBS_* status codes. Complain loudly
if that happens.
[ commit 724361921f65a40ae5b80641dc1e92c0ff314d89 upstream ]
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8551 d57e44dd-8a1f-0410-8b47-8ef2f437770f
The C language supports implicit casting of void pointers to non-void
pointers. Remove explicit sts_entry_* casts that are not necessary.
[ commit 1a20719e074ada3e6d06ee065afd527779a6793b upstream ]
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8550 d57e44dd-8a1f-0410-8b47-8ef2f437770f
Split srb_cmd.ctx into two pointers such that the compiler can check the
type of that pointer.
[ commit 5ec9f9040f61dfd0412a53fa2fc1e321727a5a61 upstream ]
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8549 d57e44dd-8a1f-0410-8b47-8ef2f437770f
Not calling sp->done() from the command completion path is a severe bug.
Hence complain loudly if that happens.
[ commit 88263208dd23327b56fbd7c2858c389c1153b366 upstream ]
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8548 d57e44dd-8a1f-0410-8b47-8ef2f437770f
Instead of allocating a struct srb dynamically from inside .queuecommand(),
set qla2xxx_driver_template.cmd_size such that struct scsi_cmnd and struct
srb are contiguous. Do not call QLA_QPAIR_MARK_BUSY() /
QLA_QPAIR_MARK_NOT_BUSY() for SRBs associated with SCSI commands. That is
safe because scsi_remove_host() is called before queue pairs are deleted
and scsi_remove_host() waits for all outstanding SCSI commands to finish.
[ commit 85cffefa09e448906a6f0bc20f422d75a18675bd upstream ]
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8546 d57e44dd-8a1f-0410-8b47-8ef2f437770f
This patch does not change any functionality but makes the next patch
easier to read.
[ commit bdb61b9b944d1e5b7cee5a9fe21014363c55b811 upstream ]
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8545 d57e44dd-8a1f-0410-8b47-8ef2f437770f
Since all pointers passed to the srb_t.done() and srb_t.free() functions
have type srb_t, change the type of the first argument of these functions
from void * into struct srb *. This allows the compiler to verify the
argument types for these functions. This patch does not change any
functionality.
[ commit 6c18a43e3c82b0b67531a1cdec7ba31540fe6424 upstream ]
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8544 d57e44dd-8a1f-0410-8b47-8ef2f437770f