Bart Van Assche
bee5066645
scst_copy_mgr: Reject EXTENDED COPY(LID4) commands
...
Since SCST only supports EXTENDED COPY(LID1) commands, reject EXTENDED
COPY(LID4) commands.
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
2024-02-16 12:07:21 +03:00
Bart Van Assche
316856caee
scst_lib: Remove documentation of removed arguments
...
Commit 488aaeed71 ("scst_lib: Remove support for kernel versions before
3.10") removed the d_km_type and s_km_type arguments. Hence this patch that
removes the documentation for these arguments.
Fixes: 488aaeed71 ("scst_lib: Remove support for kernel versions before 3.10")
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
2024-02-16 12:07:21 +03:00
Bart Van Assche
38b9e895bd
.github/workflows: Restrict some workflows to the official repository
...
Prevent that the Coverity and send-email workflows fail for submitters
of pull requests.
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
2024-02-16 12:07:21 +03:00
Bart Van Assche
b1ec10623b
.github/workflows: Use the latest checkout action
...
Fix the following warning:
Node.js 16 actions are deprecated. Please update the following actions to
use Node.js 20: actions/checkout@v3.
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
2024-02-16 12:07:21 +03:00
Brian Meagher
f4f8da8b4d
scstadmin: Eliminate use of uninitialized value in numeric error
...
Using scstadmin to reload a configuration with fewer targets can result
in a "Use of uninitialized value in numeric ne" error. Rectify by adding
a check for the undefined value and handling the situation (by disabling
the target in question, unless the driver is copy_manager).
2024-01-30 10:55:25 +03:00
Gleb Chesnokov
2f9a82bb87
github: Update stable branch version for the Mailing list action
2024-01-15 15:33:45 +03:00
Gleb Chesnokov
188256792c
Bump the version number to 3.9.0-pre
...
These changes have been generated by running the following command:
$ scripts/update-version 3 9 0 -pre
2024-01-15 15:33:45 +03:00
Gleb Chesnokov
f134517007
nightly build: Update kernel versions
v3.8
2024-01-15 13:59:19 +03:00
Gleb Chesnokov
cd23abef42
www: Update the version number from 3.7 to 3.8
2024-01-15 13:59:19 +03:00
Gleb Chesnokov
1171841931
Bump the version number to 3.8.0
...
These changes have been generated by running the following command:
$ scripts/update-version 3 8 0
2024-01-15 13:59:19 +03:00
Gleb Chesnokov
cee270448c
scst/ChangeLog: Summarize the changes for the upcoming 3.8 release
2024-01-15 13:59:19 +03:00
Brian Meagher
df039cb3e9
scst.h, scst, device handlers: Fix scst_replace_port_info
...
scst_pass_through_cmd_done can run in interrupt context, and call
scst_replace_port_info, which in turn was calling scst_lookup_tg_id.
Since scst_lookup_tg_id does a mutex_lock, we should not call it from
interrupt context.
Add scst_cmd_inquired_dev_ident and use in various locations.
2024-01-12 10:50:15 +03:00
Gleb Chesnokov
7baf286609
scripts/specialize-patch: Improve RHEL support
...
Unbreak nightly build for RHEL 8.9 and 9.3
2024-01-10 19:34:49 +03:00
Gleb Chesnokov
b5693922e0
scst_lib: Use gfp_mask instead of GFP_KERNEL for percpu_ref_init()
...
Fix smatch-reported warning message:
drivers/scst/scst_lib.c:4198 scst_alloc_device() warn: use 'gfp_mask'
here instead of GFP_KERNEL?
2024-01-10 19:34:49 +03:00
Gleb Chesnokov
cc3833c50b
nightly build: Downgrade the kernel version for RHEL 8.8
...
AlmaLinux has broken source RPMs for RHEL 8.8 kernel versions higher
than 477.13.1, so use that version for now.
2024-01-10 19:34:49 +03:00
Gleb Chesnokov
50e1babd39
scst/include/backport.h: Fix backport for new stable kernels
...
This patch fixes the build against kernel versions 5.4.263, 5.10.203,
5.15.136.
2024-01-10 19:34:49 +03:00
Gleb Chesnokov
7a48f02640
scst/include/backport.h: Port to the latest UEK 7 kernel
...
This patch fixes the build against UEK kernel 5.15.0-201.135.6.el9uek.
2024-01-10 19:34:49 +03:00
Gleb Chesnokov
04ea811e8d
scripts: Revert "scripts: Add support for the UEK_RELEASE macro"
...
This reverts commit 0d025a2e .
Remove unused UEK_RELEASE macro support.
2024-01-10 19:34:49 +03:00
Gleb Chesnokov
be9d368361
scst_targ: Fix shift out of bounds
...
This patch should fix the following UBSAN warning:
UBSAN: shift-out-of-bounds in scst/src/scst_targ.c:3912:6
shift exponent -1 is negative
Call Trace:
<TASK>
show_stack+0x52/0x5c
dump_stack_lvl+0x4a/0x63
dump_stack+0x10/0x16
ubsan_epilogue+0x9/0x36
__ubsan_handle_shift_out_of_bounds.cold+0x61/0xef
scst_process_active_cmd.cold+0xf/0x2d [scst]
scst_process_redirect_cmd+0xd4/0x2e0 [scst]
scst_tgt_cmd_done+0x48/0x70 [scst]
scst_local_targ_xmit_response+0x64/0x220 [scst_local]
scst_process_active_cmd+0x891/0x2140 [scst]
scst_process_redirect_cmd+0xd4/0x2e0 [scst]
scst_cmd_done_local+0x80/0x110 [scst]
dev_user_process_reply+0x597/0x1160 [scst_user]
dev_user_ioctl+0x145/0xb23 [scst_user]
__x64_sys_ioctl+0x95/0xd0
do_syscall_64+0x5c/0xc0
entry_SYSCALL_64_after_hwframe+0x62/0xcc
Reported-by: Rob Turk <robtu@rtist.nl >
2023-12-28 11:58:22 +03:00
Gleb Chesnokov
5716ffa737
scst_lib: Fix mem access after free
...
Fixes: https://github.com/SCST-project/scst/issues/204
2023-12-28 11:02:09 +03:00
Gleb Chesnokov
56a6be7ddf
nightly build: Update kernel versions
...
Another kernel versions update.
2023-12-27 22:09:42 +03:00
Gleb Chesnokov
6be69c08b4
qla2x00t-32gbit: Fix system crash due to bad pointer access
...
User experiences system crash when running AER error injection. The
perturbation causes the abort-all-I/O path to trigger. The driver assumes
all I/O on this path is FCP only. If there is both NVMe & FCP traffic, a
system crash happens. Add additional check to see if I/O is FCP or not
before access.
PID: 999019 TASK: ff35d769f24722c0 CPU: 53 COMMAND: "kworker/53:1"
0 [ff3f78b964847b58] machine_kexec at ffffffffae86973d
1 [ff3f78b964847ba8] __crash_kexec at ffffffffae9be29d
2 [ff3f78b964847c70] crash_kexec at ffffffffae9bf528
3 [ff3f78b964847c78] oops_end at ffffffffae8282ab
4 [ff3f78b964847c98] exc_page_fault at ffffffffaf2da502
5 [ff3f78b964847cc0] asm_exc_page_fault at ffffffffaf400b62
[exception RIP: qla2x00_abort_srb+444]
RIP: ffffffffc07b5f8c RSP: ff3f78b964847d78 RFLAGS: 00010046
RAX: 0000000000000282 RBX: ff35d74a0195a200 RCX: ff35d76886fd03a0
RDX: 0000000000000001 RSI: ffffffffc07c5ec8 RDI: ff35d74a0195a200
RBP: ff35d76913d22080 R8: ff35d7694d103200 R9: ff35d7694d103200
R10: 0000000100000000 R11: ffffffffb05d6630 R12: 0000000000010000
R13: ff3f78b964847df8 R14: ff35d768d8754000 R15: ff35d768877248e0
ORIG_RAX: ffffffffffffffff CS: 0010 SS: 0018
6 [ff3f78b964847d70] qla2x00_abort_srb at ffffffffc07b5f84 [qla2xxx]
7 [ff3f78b964847de0] __qla2x00_abort_all_cmds at ffffffffc07b6238 [qla2xxx]
8 [ff3f78b964847e38] qla2x00_abort_all_cmds at ffffffffc07ba635 [qla2xxx]
9 [ff3f78b964847e58] qla2x00_terminate_rport_io at ffffffffc08145eb [qla2xxx]
10 [ff3f78b964847e70] fc_terminate_rport_io at ffffffffc045987e [scsi_transport_fc]
11 [ff3f78b964847e88] process_one_work at ffffffffae914f15
12 [ff3f78b964847ed0] worker_thread at ffffffffae9154c0
13 [ff3f78b964847f10] kthread at ffffffffae91c456
14 [ff3f78b964847f50] ret_from_fork at ffffffffae8036ef
Cc: stable@vger.kernel.org
Fixes: f45bca8c5052 ("scsi: qla2xxx: Fix double scsi_done for abort path")
Signed-off-by: Quinn Tran <qutran@marvell.com >
Signed-off-by: Nilesh Javali <njavali@marvell.com >
Link: https://lore.kernel.org/r/20231030064912.37912-1-njavali@marvell.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
[ commit 19597cad64d6 upstream ]
2023-12-27 22:01:36 +03:00
Gleb Chesnokov
e154a6bc4f
qla2x00t-32gbit: Fix double free of dsd_list during driver load
...
On driver load, scsi_add_host() can fail. This triggers the free path to
call qla2x00_mem_free() multiple times. This causes NULL pointer access of
ha->base_qpair. Add check before access.
BUG: unable to handle kernel NULL pointer dereference at 0000000000000030
IP: [<ffffffffc118f73c>] qla2x00_mem_free+0x51c/0xcb0 [qla2xxx]
PGD 8000001fcfe4a067 PUD 1fc8f0a067 PMD 0
Oops: 0000 [#1 ] SMP
RIP: 0010:[<ffffffffc118f73c>] [<ffffffffc118f73c>] qla2x00_mem_free+0x51c/0xcb0 [qla2xxx]
RSP: 0018:ffff8ace97a93a30 EFLAGS: 00010246
RAX: 0000000000000000 RBX: ffff8ace8efd0000 RCX: 000000000000488f
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
RBP: ffff8ace97a93a60 R08: 000000000001f040 R09: ffffffff8678209b
R10: ffff8acf7d6df040 R11: ffffc591c0fcc980 R12: ffffffff87034800
R13: ffff8acf0e3cc740 R14: ffff8ace8efd0000 R15: 00000000fffffff4
FS: 00007f4cf5449740(0000) GS:ffff8acf7d6c0000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000000000030 CR3: 0000001fc2f6c000 CR4: 00000000007607e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
[<ffffffff86781f18>] ? kobject_put+0x28/0x60
[<ffffffffc119a59c>] qla2x00_probe_one+0x19fc/0x3040 [qla2xxx]
Fixes: efeda3bf912f ("scsi: qla2xxx: Move resource to allow code reuse")
Signed-off-by: Quinn Tran <qutran@marvell.com >
Signed-off-by: Nilesh Javali <njavali@marvell.com >
Link: https://lore.kernel.org/r/20231016101749.5059-1-njavali@marvell.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
[ commit 097c06394c83 upstream ]
2023-12-27 22:01:36 +03:00
Gleb Chesnokov
d3da391be8
scst/include/backport.h: Unbreak the RHEL 8.9 build
2023-12-27 21:13:12 +03:00
Gleb Chesnokov
2d243a71e7
scst: Unbreak the RHEL 9.4 build
...
Fixes: https://github.com/SCST-project/scst/issues/201
2023-12-27 18:27:42 +03:00
Gleb Chesnokov
fd88df1e25
scst_mem: Port to Linux kernel v6.7
...
Support for the following mm layer changes in the Linux kernel v6.7:
- c42d50aefd17 ("mm: shrinker: add infrastructure for dynamically
allocating shrinker")
2023-12-27 18:02:30 +03:00
Gleb Chesnokov
4c0fb04aba
qla2x00t-32gbit: Correct endianness for rqstlen and rsplen
...
rqstlen and rsplen were changed to __le32 to fix sparse warnings:
drivers/scsi/qla2xxx/qla_nvme.c:402:30: warning: incorrect type in assignment (different base types)
drivers/scsi/qla2xxx/qla_nvme.c:402:30: expected restricted __le32 [usertype] cmd_len
drivers/scsi/qla2xxx/qla_nvme.c:402:30: got unsigned short [usertype] rsplen
drivers/scsi/qla2xxx/qla_nvme.c:507:30: warning: incorrect type in assignment (different base types)
drivers/scsi/qla2xxx/qla_nvme.c:507:30: expected restricted __le32 [usertype] cmd_len
drivers/scsi/qla2xxx/qla_nvme.c:507:30: got unsigned int [usertype] rqstlen
drivers/scsi/qla2xxx/qla_nvme.c:508:30: warning: incorrect type in assignment (different base types)
drivers/scsi/qla2xxx/qla_nvme.c:508:30: expected restricted __le32 [usertype] rsp_len
drivers/scsi/qla2xxx/qla_nvme.c:508:30: got unsigned int [usertype] rsplen
Correct the endianness in qla2xxx driver thus avoiding changes in
nvme-fc-driver.h.
Fixes: 875386b98857 ("scsi: qla2xxx: Add Unsolicited LS Request and Response Support for NVMe")
Signed-off-by: Nilesh Javali <njavali@marvell.com >
Link: https://lore.kernel.org/r/20230831112146.32595-1-njavali@marvell.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
[ commit 0be7592885d7 upstream ]
2023-10-10 15:10:02 +03:00
Gleb Chesnokov
785ac55de7
qla2x00t-32gbit: Fix unused variable warning in qla2xxx_process_purls_pkt()
...
When CONFIG_NVME_FC is not set, fcport is unused:
drivers/scsi/qla2xxx/qla_nvme.c: In function 'qla2xxx_process_purls_pkt':
drivers/scsi/qla2xxx/qla_nvme.c:1183:20: warning: unused variable 'fcport' [-Wunused-variable]
1183 | fc_port_t *fcport = uctx->fcport;
| ^~~~~~
While this preprocessor usage could be converted to a normal if
statement to allow the compiler to always see fcport as used, it is
equally easy to just eliminate the fcport variable and use uctx->fcport
directly.
Fixes: 27177862de96 ("scsi: qla2xxx: Fix nvme_fc_rcv_ls_req() undefined error")
Reported-by: Stephen Rothwell <sfr@canb.auug.org.au >
Closes: https://lore.kernel.org/linux-next/20230828131304.269a2a40@canb.auug.org.au/
Reported-by: kernel test robot <lkp@intel.com >
Closes: https://lore.kernel.org/oe-kbuild-all/202308290833.sKkoSSeO-lkp@intel.com/
Signed-off-by: Nathan Chancellor <nathan@kernel.org >
Link: https://lore.kernel.org/r/20230829-qla_nvme-fix-unused-fcport-v1-1-51c7560ecaee@kernel.org
Acked-by: Nilesh Javali <njavali@marvell.com >
Reviewed-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
[ commit d4781807f050 upstream ]
2023-10-10 15:10:02 +03:00
Gleb Chesnokov
4dd1f3f984
qla2x00t-32gbit: Fix spelling mistake "tranport" -> "transport"
...
There is a spelling mistake in a ql_dbg message. Fix it.
Signed-off-by: Colin Ian King <colin.i.king@gmail.com >
Link: https://lore.kernel.org/r/20230828213101.758609-1-colin.i.king@gmail.com
Acked-by: Nilesh Javali <njavali@marvell.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
[ commit 7a5dee9b72e9 upstream ]
2023-10-10 15:10:02 +03:00
Gleb Chesnokov
69a6419bed
qla2x00t-32gbit: Fix nvme_fc_rcv_ls_req() undefined error
...
The kernel robot reported below build error,
>> ERROR: modpost: "nvme_fc_rcv_ls_req" [drivers/scsi/qla2xxx/qla2xxx.ko] undefined!
Use CONFIG_NVME_FC enabled check to fix the build error.
Reported-by: kernel test robot <lkp@intel.com >
Closes: https://lore.kernel.org/oe-kbuild-all/202308021445.txlNq7UC-lkp@intel.com/
Signed-off-by: Nilesh Javali <njavali@marvell.com >
Link: https://lore.kernel.org/r/20230824151521.35261-1-njavali@marvell.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
[ commit 27177862de96 upstream ]
2023-10-10 15:10:02 +03:00
Gleb Chesnokov
c94fdd810a
qla2x00t-32gbit: Backport to older kernel versions
...
Unbreak the build for the previous commit against kernel versions
before v5.8.
See also commit 72e6329f86c7 ("nvme-fc and nvmet-fc: revise LLDD api for LS
reception and LS request") # v5.8.
2023-10-10 15:10:02 +03:00
Gleb Chesnokov
868eb28e20
qla2x00t-32gbit: Add Unsolicited LS Request and Response Support for NVMe
...
Introduce infrastructure in the driver to support the processing of
unsolicited LS (Link Service) requests. This will involve the utilization
of a new pass-up of unsolicited FC-NVMe request IOCB interface. Unsolicited
requests will be submitted to the NVMe transport layer through
nvme_fc_rcv_ls_req(). Any received LS responses, which are sent using
xmt_ls_rsp(), will be forwarded to the firmware through the existing
Pass-Through IOCB interface, responsible for sending FC-NVMe Link Service
requests and responses.
Signed-off-by: Manish Rangankar <mrangankar@marvell.com >
Signed-off-by: Nilesh Javali <njavali@marvell.com >
Link: https://lore.kernel.org/r/20230821130045.34850-2-njavali@marvell.com
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
[ commit 875386b98857 upstream ]
2023-10-10 15:10:02 +03:00
Gleb Chesnokov
12fd0ea93e
scst/include/backport.h: Backport some debugfs functions
...
Support the previous commit against kernel versions before v5.0.
See also commit ff9fb72bc077 ("debugfs: return error values,
not NULL") # v5.0.
2023-10-10 15:10:02 +03:00
Gleb Chesnokov
6552b55c22
qla2x00t-32gbit: Fix NULL vs IS_ERR() bug for debugfs_create_dir()
...
Since both debugfs_create_dir() and debugfs_create_file() return ERR_PTR
and never NULL, use IS_ERR() instead of checking for NULL.
Fixes: 1e98fb0f9208 ("scsi: qla2xxx: Setup debugfs entries for remote ports")
Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com >
Link: https://lore.kernel.org/r/20230831140930.3166359-1-ruanjinjie@huawei.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
[ commit d0b0822e32db upstream ]
2023-10-10 15:10:02 +03:00
Gleb Chesnokov
bea458054e
qla2x00t-32gbit: Use raw_smp_processor_id() instead of smp_processor_id()
...
The following call trace was observed:
localhost kernel: nvme nvme0: NVME-FC{0}: controller connect complete
localhost kernel: BUG: using smp_processor_id() in preemptible [00000000] code: kworker/u129:4/75092
localhost kernel: nvme nvme0: NVME-FC{0}: new ctrl: NQN "nqn.1992-08.com.netapp:sn.b42d198afb4d11ecad6d00a098d6abfa:subsystem.PR_Channel2022_RH84_subsystem_291"
localhost kernel: caller is qla_nvme_post_cmd+0x216/0x1380 [qla2xxx]
localhost kernel: CPU: 6 PID: 75092 Comm: kworker/u129:4 Kdump: loaded Tainted: G B W OE --------- --- 5.14.0-70.22.1.el9_0.x86_64+debug #1
localhost kernel: Hardware name: HPE ProLiant XL420 Gen10/ProLiant XL420 Gen10, BIOS U39 01/13/2022
localhost kernel: Workqueue: nvme-wq nvme_async_event_work [nvme_core]
localhost kernel: Call Trace:
localhost kernel: dump_stack_lvl+0x57/0x7d
localhost kernel: check_preemption_disabled+0xc8/0xd0
localhost kernel: qla_nvme_post_cmd+0x216/0x1380 [qla2xxx]
Use raw_smp_processor_id() instead of smp_processor_id().
Also use queue_work() across the driver instead of queue_work_on() thus
avoiding usage of smp_processor_id() when CONFIG_DEBUG_PREEMPT is enabled.
Cc: stable@vger.kernel.org
Suggested-by: John Garry <john.g.garry@oracle.com >
Signed-off-by: Nilesh Javali <njavali@marvell.com >
Link: https://lore.kernel.org/r/20230831112146.32595-2-njavali@marvell.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
[ commit 59f10a05b5c7 upstream ]
2023-10-10 15:10:02 +03:00
Gleb Chesnokov
3cbfc93ac3
qla2x00t-32gbit: Remove unused variables in qla24xx_build_scsi_type_6_iocbs()
...
Sparse warning reported,
drivers/scsi/qla2xxx/qla_iocb.c: In function 'qla24xx_build_scsi_type_6_iocbs':
>> drivers/scsi/qla2xxx/qla_iocb.c:594:29: warning: variable 'ha' set but not used [-Wunused-but-set-variable]
594 | struct qla_hw_data *ha;
| ^~
Remove unused variables 'vha' and 'ha'.
Reported-by: kernel test robot <lkp@intel.com >
Closes: https://lore.kernel.org/oe-kbuild-all/202308230757.VKMIztAB-lkp@intel.com/
Signed-off-by: Nilesh Javali <njavali@marvell.com >
Link: https://lore.kernel.org/r/20230825070017.46066-1-njavali@marvell.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
[ commit d4781807f050 upstream ]
2023-10-10 15:10:02 +03:00
Gleb Chesnokov
0c729fb3ee
qla2x00t-32gbit: Update version to 10.02.09.100-k
...
Signed-off-by: Nilesh Javali <njavali@marvell.com >
Link: https://lore.kernel.org/r/20230821130045.34850-10-njavali@marvell.com
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
[ commit cc6e67e60fe7 upstream ]
2023-10-10 15:01:54 +03:00
Gleb Chesnokov
33597b6bba
qla2x00t-32gbit: Revert "qla2x00t-32gbit: Fix buffer overrun"
...
Revert due to Get PLOGI Template failed.
This reverts commit b68710a8094fdffe8dd4f7a82c82649f479bb453.
Cc: stable@vger.kernel.org
Signed-off-by: Nilesh Javali <njavali@marvell.com >
Link: https://lore.kernel.org/r/20230821130045.34850-9-njavali@marvell.com
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
[ commit 641671d97b91 upstream ]
2023-10-10 15:01:54 +03:00
Gleb Chesnokov
bd33d66883
qla2x00t-32gbit: Fix smatch warn for qla_init_iocb_limit()
...
Fix indentation for warning reported by smatch:
drivers/scsi/qla2xxx/qla_init.c:4199 qla_init_iocb_limit() warn: inconsistent indenting
Fixes: efa74a62aaa2 ("scsi: qla2xxx: Adjust IOCB resource on qpair create")
Signed-off-by: Nilesh Javali <njavali@marvell.com >
Link: https://lore.kernel.org/r/20230821130045.34850-8-njavali@marvell.com
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
[ commit b496953dd044 upstream ]
2023-10-10 15:01:54 +03:00
Gleb Chesnokov
3e9fa7bf40
qla2x00t-32gbit: Remove unsupported ql2xenabledif option
...
User accidently passed module parameter ql2xenabledif=1 which is
unsupported. However, driver still initialized which lead to guard tag
errors during device discovery.
Remove unsupported ql2xenabledif=1 option and validate the user input.
Cc: stable@vger.kernel.org
Signed-off-by: Manish Rangankar <mrangankar@marvell.com >
Signed-off-by: Nilesh Javali <njavali@marvell.com >
Link: https://lore.kernel.org/r/20230821130045.34850-7-njavali@marvell.com
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
[ commit e9105c4b7a92 upstream ]
2023-10-10 15:01:54 +03:00
Gleb Chesnokov
a0e75be0ff
qla2x00t-32gbit: Error code did not return to upper layer
...
TMF was returned with an error code. The error code was not preserved to be
returned to upper layer. Instead, the error code from the Marker was
returned.
Preserve error code from TMF and return it to upper layer.
Cc: stable@vger.kernel.org
Fixes: da7c21b72aa8 ("scsi: qla2xxx: Fix command flush during TMF")
Signed-off-by: Quinn Tran <qutran@marvell.com >
Signed-off-by: Nilesh Javali <njavali@marvell.com >
Link: https://lore.kernel.org/r/20230821130045.34850-6-njavali@marvell.com
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
[ commit 0ba0b018f945 upstream ]
2023-10-10 15:01:54 +03:00
Gleb Chesnokov
e4ff303fd8
qla2x00t-32gbit: Add logs for SFP temperature monitoring
...
Add logs for SFP Temperature Alert async event to check if laser is
enabled/disabled.
Signed-off-by: Bikash Hazarika <bhazarika@marvell.com >
Signed-off-by: Nilesh Javali <njavali@marvell.com >
Link: https://lore.kernel.org/r/20230821130045.34850-5-njavali@marvell.com
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
[ commit cd248a95f86d upstream ]
2023-10-10 15:01:54 +03:00
Gleb Chesnokov
059cddcd91
qla2x00t-32gbit: Fix firmware resource tracking
...
The storage was not draining I/Os and the work load was not spread out
across different CPUs evenly. This led to firmware resource counters
getting overrun on the busy CPU. This overrun prevented error recovery from
happening in a timely manner.
By switching the counter to atomic, it allows the count to be little more
accurate to prevent the overrun.
Cc: stable@vger.kernel.org
Fixes: da7c21b72aa8 ("scsi: qla2xxx: Fix command flush during TMF")
Signed-off-by: Quinn Tran <qutran@marvell.com >
Signed-off-by: Nilesh Javali <njavali@marvell.com >
Link: https://lore.kernel.org/r/20230821130045.34850-4-njavali@marvell.com
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
[ commit e370b64c7db9 upstream ]
2023-10-10 15:01:54 +03:00
Gleb Chesnokov
d2e9e5032a
qla2x00t-32gbit: Flush mailbox commands on chip reset
...
Fix race condition between Interrupt thread and Chip reset thread in trying
to flush the same mailbox. With the race condition, the "ha->mbx_intr_comp"
will get an extra complete() call. The extra complete call create erroneous
mailbox timeout condition when the next mailbox is sent where the mailbox
call does not wait for interrupt to arrive. Instead, it advances without
waiting.
Add lock protection around the check for mailbox completion.
Cc: stable@vger.kernel.org
Fixes: b2000805a975 ("scsi: qla2xxx: Flush mailbox commands on chip reset")
Signed-off-by: Quinn Tran <quinn.tran@marvell.com >
Signed-off-by: Nilesh Javali <njavali@marvell.com >
Link: https://lore.kernel.org/r/20230821130045.34850-3-njavali@marvell.com
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
[ commit 6d0b65569c0a upstream ]
2023-10-10 15:01:54 +03:00
Gleb Chesnokov
927aa37025
qla2x00t-32gbit: Allow 32-byte CDBs
...
System crashes when a 32-byte CDB was sent to a non T10 PI disk:
[ 177.143279] ? qla2xxx_dif_start_scsi_mq+0xcd8/0xce0 [qla2xxx]
[ 177.149165] ? internal_add_timer+0x42/0x70
[ 177.153372] qla2xxx_mqueuecommand+0x207/0x2b0 [qla2xxx]
[ 177.158730] scsi_queue_rq+0x2b7/0xc00
[ 177.162501] blk_mq_dispatch_rq_list+0x3ea/0x7e0
Current code attempted to use CRC IOCB to send the command but failed.
Instead, type 6 IOCB should be used to send the I/O.
Clone existing type 6 IOCB code with addition of MQ support to allow
32-byte CDBs to go through.
Signed-off-by: Quinn Tran <qutran@marvell.com >
Cc: Laurence Oberman <loberman@redhat.com >
Signed-off-by: Nilesh Javali <njavali@marvell.com >
Link: https://lore.kernel.org/r/20230817063132.21900-3-njavali@marvell.com
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
[ commit ae25f65a351c upstream ]
2023-10-10 15:01:54 +03:00
Gleb Chesnokov
a08f4369b3
qla2x00t-32gbit: Move resource to allow code reuse
...
dsd_list contains a list of dsd buffer resources allocated during traffic
time. It resides in the qla_hw_data location where some of the code is not
reusable.
Move this list to qpair to allow reuse by either single queue or multi
queue adapter / code.
Signed-off-by: Quinn Tran <qutran@marvell.com >
Signed-off-by: Nilesh Javali <njavali@marvell.com >
Link: https://lore.kernel.org/r/20230817063132.21900-2-njavali@marvell.com
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
[ commit efeda3bf912f upstream ]
2023-10-10 15:01:54 +03:00
Gleb Chesnokov
83393aa284
qla2x00t-32gbit: Remove unused declarations
...
These declarations are not used anymore, remove them.
Signed-off-by: Yue Haibing <yuehaibing@huawei.com >
Link: https://lore.kernel.org/r/20230816130842.16684-1-yuehaibing@huawei.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
[ commit 1e4474c84554 upstream ]
2023-10-10 15:01:54 +03:00
Gleb Chesnokov
b082deba12
qla2x00t-32gbit: Update version to 10.02.08.500-k
...
Signed-off-by: Nilesh Javali <njavali@marvell.com >
Link: https://lore.kernel.org/r/20230714070104.40052-11-njavali@marvell.com
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
[ commit a31a596a4265 upstream ]
2023-10-10 14:51:33 +03:00
Gleb Chesnokov
5795b2ad9d
qla2x00t-32gbit: fix inconsistent TMF timeout
...
Different behavior were experienced of session being torn down vs not when
TMF is timed out. When FW detects the time out, the session is torn down.
When driver detects the time out, the session is not torn down.
Allow TMF error to return to upper layer without session tear down.
Cc: stable@vger.kernel.org
Signed-off-by: Quinn Tran <qutran@marvell.com >
Signed-off-by: Nilesh Javali <njavali@marvell.com >
Link: https://lore.kernel.org/r/20230714070104.40052-10-njavali@marvell.com
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
[ commit 009e7fe4a1ed upstream ]
2023-10-10 14:51:33 +03:00
Gleb Chesnokov
014cc2d4f8
qla2x00t-32gbit: Fix TMF leak through
...
Task management can retry up to 5 times when FW resource becomes bottle
neck. Between the retries, there is a short sleep. Current code assumes
the chip has not reset or session has not changed.
Check for chip reset or session change before sending Task management.
Cc: stable@vger.kernel.org
Fixes: 9803fb5d2759 ("scsi: qla2xxx: Fix task management cmd failure")
Signed-off-by: Quinn Tran <qutran@marvell.com >
Signed-off-by: Nilesh Javali <njavali@marvell.com >
Link: https://lore.kernel.org/r/20230714070104.40052-9-njavali@marvell.com
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
[ commit 5d3148d8e8b0 upstream ]
2023-10-10 14:51:33 +03:00