Commit Graph
9065 Commits
Author SHA1 Message Date
Gleb Chesnokov 5a325ea4a7 qla2x00t-32gbit: Fix command flush on cable pull
System crash due to command failed to flush back to SCSI layer.

 BUG: unable to handle kernel NULL pointer dereference at 0000000000000000
 PGD 0 P4D 0
 Oops: 0000 [#1] SMP NOPTI
 CPU: 27 PID: 793455 Comm: kworker/u130:6 Kdump: loaded Tainted: G           OE    --------- -  - 4.18.0-372.9.1.el8.x86_64 #1
 Hardware name: HPE ProLiant DL360 Gen10/ProLiant DL360 Gen10, BIOS U32 09/03/2021
 Workqueue: nvme-wq nvme_fc_connect_ctrl_work [nvme_fc]
 RIP: 0010:__wake_up_common+0x4c/0x190
 Code: 24 10 4d 85 c9 74 0a 41 f6 01 04 0f 85 9d 00 00 00 48 8b 43 08 48 83 c3 08 4c 8d 48 e8 49 8d 41 18 48 39 c3 0f 84 f0 00 00 00 <49> 8b 41 18 89 54 24 08 31 ed 4c 8d 70 e8 45 8b 29 41 f6 c5 04 75
 RSP: 0018:ffff95f3e0cb7cd0 EFLAGS: 00010086
 RAX: 0000000000000000 RBX: ffff8b08d3b26328 RCX: 0000000000000000
 RDX: 0000000000000001 RSI: 0000000000000003 RDI: ffff8b08d3b26320
 RBP: 0000000000000001 R08: 0000000000000000 R09: ffffffffffffffe8
 R10: 0000000000000000 R11: ffff95f3e0cb7a60 R12: ffff95f3e0cb7d20
 R13: 0000000000000003 R14: 0000000000000000 R15: 0000000000000000
 FS:  0000000000000000(0000) GS:ffff8b2fdf6c0000(0000) knlGS:0000000000000000
 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
 CR2: 0000000000000000 CR3: 0000002f1e410002 CR4: 00000000007706e0
 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
 PKRU: 55555554
 Call Trace:
  __wake_up_common_lock+0x7c/0xc0
  qla_nvme_ls_req+0x355/0x4c0 [qla2xxx]
 qla2xxx [0000:12:00.1]-f084:3: qlt_free_session_done: se_sess 0000000000000000 / sess ffff8ae1407ca000 from port 21:32:00:02:ac:07:ee:b8 loop_id 0x02 s_id 01:02:00 logout 1 keep 0 els_logo 0
 ? __nvme_fc_send_ls_req+0x260/0x380 [nvme_fc]
 qla2xxx [0000:12:00.1]-207d:3: FCPort 21:32:00:02:ac:07:ee:b8 state transitioned from ONLINE to LOST - portid=010200.
  ? nvme_fc_send_ls_req.constprop.42+0x1a/0x45 [nvme_fc]
 qla2xxx [0000:12:00.1]-2109:3: qla2x00_schedule_rport_del 21320002ac07eeb8. rport ffff8ae598122000 roles 1
 ? nvme_fc_connect_ctrl_work.cold.63+0x1e3/0xa7d [nvme_fc]
 qla2xxx [0000:12:00.1]-f084:3: qlt_free_session_done: se_sess 0000000000000000 / sess ffff8ae14801e000 from port 21:32:01:02:ad:f7:ee:b8 loop_id 0x04 s_id 01:02:01 logout 1 keep 0 els_logo 0
  ? __switch_to+0x10c/0x450
 ? process_one_work+0x1a7/0x360
 qla2xxx [0000:12:00.1]-207d:3: FCPort 21:32:01:02:ad:f7:ee:b8 state transitioned from ONLINE to LOST - portid=010201.
  ? worker_thread+0x1ce/0x390
  ? create_worker+0x1a0/0x1a0
 qla2xxx [0000:12:00.1]-2109:3: qla2x00_schedule_rport_del 21320102adf7eeb8. rport ffff8ae3b2312800 roles 70
  ? kthread+0x10a/0x120
 qla2xxx [0000:12:00.1]-2112:3: qla_nvme_unregister_remote_port: unregister remoteport on ffff8ae14801e000 21320102adf7eeb8
  ? set_kthread_struct+0x40/0x40
 qla2xxx [0000:12:00.1]-2110:3: remoteport_delete of ffff8ae14801e000 21320102adf7eeb8 completed.
  ? ret_from_fork+0x1f/0x40
 qla2xxx [0000:12:00.1]-f086:3: qlt_free_session_done: waiting for sess ffff8ae14801e000 logout

The system was under memory stress where driver was not able to allocate an
SRB to carry out error recovery of cable pull.  The failure to flush causes
upper layer to start modifying scsi_cmnd.  When the system frees up some
memory, the subsequent cable pull trigger another command flush. At this
point the driver access a null pointer when attempting to DMA unmap the
SGL.

Add a check to make sure commands are flush back on session tear down to
prevent the null pointer access.

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/20240227164127.36465-7-njavali@marvell.com
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
[ commit a27d4d0e7de3 upstream ]
2024-05-03 12:50:49 +03:00
Gleb Chesnokov 0929d8125f qla2x00t-32gbit: NVME|FCP prefer flag not being honored
Changing of [FCP|NVME] prefer flag in flash has no effect on driver. For
device that supports both FCP + NVMe over the same connection, driver
continues to connect to this device using the previous successful login
mode.

On completion of flash update, adapter will be reset. Driver will
reset the prefer flag based on setting from flash.

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/20240227164127.36465-6-njavali@marvell.com
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
[ commit 69aecdd41010 upstream ]
2024-05-03 12:50:49 +03:00
Gleb Chesnokov 10c4006caa qla2x00t-32gbit: Update manufacturer detail
Update manufacturer detail from "Marvell Semiconductor, Inc." to
"Marvell".

Cc: stable@vger.kernel.org
Signed-off-by: Bikash Hazarika <bhazarika@marvell.com>
Signed-off-by: Nilesh Javali <njavali@marvell.com>
Link: https://lore.kernel.org/r/20240227164127.36465-5-njavali@marvell.com
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
[ commit 688fa069fda6 upstream ]
2024-05-03 12:50:49 +03:00
Gleb Chesnokov 869135ef83 qla2x00t-32gbit: Split FCE|EFT trace control
Current code combines the allocation of FCE|EFT trace buffers and enables
the features all in 1 step.

Split this step into separate steps in preparation for follow-on patch to
allow user to have a choice to enable / disable FCE trace feature.

Cc: stable@vger.kernel.org
Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Quinn Tran <qutran@marvell.com>
Signed-off-by: Nilesh Javali <njavali@marvell.com>
Link: https://lore.kernel.org/r/20240227164127.36465-4-njavali@marvell.com
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
[ commit 76a192e1a566 upstream ]
2024-05-03 12:50:49 +03:00
Gleb Chesnokov f91f314b3a qla2x00t-32gbit: Fix N2N stuck connection
Disk failed to rediscover after chip reset error injection. The chip reset
happens at the time when a PLOGI is being sent. This causes a flag to be
left on which blocks the retry. Clear the blocking flag.

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/20240227164127.36465-3-njavali@marvell.com
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
[ commit 881eb861ca38 upstream ]
2024-05-03 12:50:49 +03:00
Gleb Chesnokov aabf1cedc3 qla2x00t-32gbit: Prevent command send on chip reset
Currently IOCBs are allowed to push through while chip reset could be in
progress. During chip reset the outstanding_cmds array is cleared
twice. Once when any command on this array is returned as failed and
secondly when the array is initialize to zero. If a command is inserted on
to the array between these intervals, then the command will be lost.  Check
for chip reset before sending IOCB.

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/20240227164127.36465-2-njavali@marvell.com
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
[ commit 4895009c4bb7 upstream ]
2024-05-03 12:50:49 +03:00
Gleb Chesnokov e322287f89 scst/include/backport.h: Backport DEFINE_SHOW_STORE_ATTRIBUTE()
Support the previous commit against kernel versions before v6.7.

See also commit 9cba82bba500 ("seq_file: add helper macro to define
attribute for rw file") # v6.7.
2024-05-03 12:50:49 +03:00
Gleb Chesnokov 1ea7200d55 qla2x00t-32gbit: use DEFINE_SHOW_STORE_ATTRIBUTE() helper for debugfs
Use DEFINE_SHOW_STORE_ATTRIBUTE() helper for read-write file to reduce some
duplicated code.

Link: https://lkml.kernel.org/r/20230905024835.43219-4-yangxingui@huawei.com
Signed-off-by: Luo Jiaxing <luojiaxing@huawei.com>
Co-developed-by: Xingui Yang <yangxingui@huawei.com>
Signed-off-by: Xingui Yang <yangxingui@huawei.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Animesh Manna <animesh.manna@intel.com>
Cc: Anshuman Gupta <anshuman.gupta@intel.com>
Cc: Damien Le Moal <damien.lemoal@opensource.wdc.com>
Cc: Felipe Balbi <felipe.balbi@linux.intel.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Himanshu Madhani <himanshu.madhani@cavium.com>
Cc: James Bottomley <jejb@linux.ibm.com>
Cc: John Garry <john.g.garry@oracle.com>
Cc: Martin K. Petersen <martin.petersen@oracle.com>
Cc: Uma Shankar <uma.shankar@intel.com>
Cc: Xiang Chen <chenxiang66@hisilicon.com>
Cc: Zeng Tao <prime.zeng@hisilicon.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
[ commit a9d56ce053da upstream ]
2024-05-03 12:50:49 +03:00
Gleb Chesnokov 8a1a7fab1d scst/include/backport.h: Fix the build against UEK kernels
Commit 48ef50966a ("scst/include/backport.h: Port to the latest UEK
kernels") broke the build for UEK kernel versions before v5.4.17-2136.
Fix it.
2024-05-03 12:18:43 +03:00
Gleb Chesnokov 52b5e841cf scst/include/backport.h: Fix backport for new stable kernels
This patch fixes the build against kernel versions >= 6.6.23.
2024-05-03 12:18:43 +03:00
Gleb Chesnokov 48ef50966a scst/include/backport.h: Port to the latest UEK kernels
This patch fixes the build against UEK kernel versions
5.4.17-2136.330.7.1.el8uek, 5.15.0-205.149.5.1.el9uek.
2024-05-02 17:20:01 +03:00
Gleb Chesnokov 71abad275e scst/include/backport.h: Fix backport for new stable kernels
This patch fixes the build against kernel versions >= 5.10.210.
2024-05-02 17:20:01 +03:00
Gleb Chesnokov d3a2faecff scripts/run-regression-tests: Explicitly set KBUILD_MODPOST_WARN=1
This fixes the run-regression-tests build against kernel versions >= v6.3.

See also commit 5573b4daa26a ("kbuild: do not automatically add -w option
to modpost") # v6.3.
2024-05-02 17:20:01 +03:00
Gleb Chesnokov 56bb6c0fa6 nightly build, scripts: Remove svn support
Remove deprecated svn support.
2024-05-02 17:20:01 +03:00
Gleb Chesnokov f4840e9579 nightly build: Update kernel versions
Another kernel versions update.
2024-04-26 18:25:15 +03:00
Brian MeagherandGleb Chesnokov 6a21f456f7 iscsi-scst: Add mechanism to restore target parameter to default
Writing the string :default: to the /sys entry will restore local_def
2024-04-26 09:38:36 +03:00
Gleb Chesnokov 12f9b6e681 scst_lib, scst_vdisk: Port to Linux kernel v6.9
Support for the following block layer changes in the Linux kernel v6.9:

- f3a608827d1f ("bdev: open block device as files")
- b1211a25c4fe ("bdev: make bdev_{release, open_by_dev}() private to
  block layer")
2024-04-25 16:10:21 +03:00
Brian MeagherandGleb Chesnokov 659c7a7875 iscsi-scst: Add link_local parameter
Add a link_local parameter to control whether an IPv6 SendTargets
response includes link local addresses.  The default is to preserve
the existing behavior and include them.
2024-04-22 10:21:15 +03:00
Gleb Chesnokov 7bec05916c scst_vdisk: Simplify request_queue retrieval in vdisk_exec_read_capacity16
This patch simplifies the retrieval of the request_queue within the
vdisk_exec_read_capacity16 function.
2024-02-25 18:18:10 +03:00
Brian MeagherandGleb Chesnokov bb78492944 scst_vdisk: Fix recent breakage in vdisk_exec_read_capacity16
A recent commit (974001f66) added backport support for bdev_open_by_path.
This entailed adding a struct bdev_handle, but vdisk_exec_read_capacity16
attempts to lookup virt_dev->bdev_handle->bdev without regard for the fact
that if we are not using blockio then bdev_handle will be null.  Rectify
by making the lookup more robust.
2024-02-25 16:37:34 +03:00
Gleb Chesnokov ce2ba13bed scst_vdisk: Fix check for blockio device
Suppress the following (false positive) Coverity complaint:

    CID 347415: (#1 of 1): Dereference after null check (FORWARD_NULL)
    var_deref_model: Passing null pointer virt_dev->bdev_handle to
    bdev_release_backport, which dereferences it
2024-02-16 14:30:39 +03:00
Gleb Chesnokov bf6d41800e qla2x00t-32gbit: Port to Linux kernel v6.8
Support for the following tracing layer changes in the Linux kernel v6.8:

- d23569979ca1 ("tracing: Allow creating instances with specified system
  events")
2024-02-16 13:52:34 +03:00
Gleb Chesnokov 974001f66f scst/include/backport.h, scst_vdisk: Port to Linux kernel v6.8
Support for the following block layer changes in the Linux kernel v6.8:

- e719b4d15674 ("block: Provide bdev_open_* functions")
- cd34758c5238 ("block: Remove blkdev_get_by_*() functions")
2024-02-16 13:52:34 +03:00
Brian MeagherandGleb Chesnokov ff70c9deb7 scst_vdisk: Add active attributes support to vdisk_fileio
vdisk_blockio already supports the active attribute to facilitate
deferring opening au underlying block device.  Add a similar feature
to vdisk_fileio.
2024-02-16 13:40:08 +03:00
Bart Van AsscheandGleb Chesnokov 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 AsscheandGleb Chesnokov 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 AsscheandGleb Chesnokov 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 AsscheandGleb Chesnokov 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 MeagherandGleb Chesnokov 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 MeagherandGleb Chesnokov 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