All of lore.kernel.org
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Nilesh Javali" <njavali@marvell.com>
Cc: linux-scsi@vger.kernel.org
Subject: Re: [PATCH v3 11/88] scsi: qla2xxx: Update IO path to use 128-byte IOCBs for 29xx
Date: Tue, 07 Jul 2026 10:27:08 +0000	[thread overview]
Message-ID: <20260707102708.869E11F00A3A@smtp.kernel.org> (raw)
In-Reply-To: <20260707055435.2680300-12-njavali@marvell.com>

Thank you for your contribution! Sashiko AI review found 7 potential issue(s) to consider:

New issues:
- [High] Legacy non-MQ `.start_scsi` execution path builds 64-byte IOCB structures inside 128-byte ring slots on 29xx adapters, corrupting fields.
- [High] Task Management, Abort, and ELS LOGO commands are incorrectly formatted using legacy 64-byte builders on 29xx hardware.
- [High] Status continuation (STATUS_CONT_TYPE) payloads and PUREX/FPIN continuations are truncated to ~60 bytes on 29xx adapters.
- [High] `qla27xx_copy_multiple_pkt()` incorrectly advances the response queue ring pointer by 64 bytes instead of 128 bytes on 29xx hardware.
- [High] `qla2x00_status_entry()` parses the 128-byte 29xx extended status IOCB as a legacy 64-byte IOCB, reading garbage values for SCSI status and sense data.

Pre-existing issues:
- [High] Double free and cross-allocator mismatch of `crc_ctx` in `qla2x00_sp_free_dma()`.
- [High] Unprotected access to `ha->req_q_map` and its associated ring structures in `qla25xx_copy_mqueues` causes a Use-After-Free during concurrent queue teardown.
--

--- Patch [11]: [PATCH v3 11/88] scsi: qla2xxx: Update IO path to use 128-byte IOCBs for 29xx ---
commit b89f951ad304cc6622ae64928f42f9fb462d5532
Author: Anil Gurumurthy <agurumurthy@marvell.com>

scsi: qla2xxx: Update IO path to use 128-byte IOCBs for 29xx

This patch updates the QLogic qla2xxx driver IO path to support 128-byte
extended IOCBs for 29xx-class adapters. It introduces structure definitions
and extended fast-path helpers to manage the new 128-byte ring stride, while
falling back to 64-byte structures for older hardware.

> diff --git a/drivers/scsi/qla2xxx/qla_dbg.c b/drivers/scsi/qla2xxx/qla_dbg.c
> index a7e3ec9bba47f..acb58daacf358 100644
> --- a/drivers/scsi/qla2xxx/qla_dbg.c
> +++ b/drivers/scsi/qla2xxx/qla_dbg.c
[ ... ]
> @@ -623,19 +626,19 @@ qla25xx_copy_mqueues(struct qla_hw_data *ha, void *ptr, __be32 **last_chain)
>  		q->chain_size = htonl(
>  		    sizeof(struct qla2xxx_mqueue_chain) +
>  		    sizeof(struct qla2xxx_mqueue_header) +
> -		    (req->length * sizeof(request_t)));
> +		    (req->length * req_entry_size));
>  		ptr += sizeof(struct qla2xxx_mqueue_chain);
>  
>  		/* Add header. */
>  		qh = ptr;
>  		qh->queue = htonl(TYPE_REQUEST_QUEUE);
>  		qh->number = htonl(que);
> -		qh->size = htonl(req->length * sizeof(request_t));
> +		qh->size = htonl(req->length * req_entry_size);
>  		ptr += sizeof(struct qla2xxx_mqueue_header);
>  
>  		/* Add data. */
> -		memcpy(ptr, req->ring, req->length * sizeof(request_t));
> -		ptr += req->length * sizeof(request_t);
> +		memcpy(ptr, req->ring, req->length * req_entry_size);
> +		ptr += req->length * req_entry_size;

[Severity: High]
This is a pre-existing issue, but is it possible for this unprotected memcpy 
to trigger a Use-After-Free during concurrent queue teardown?

Looking at qla25xx_copy_mqueues(), it iterates over ha->req_q_map and 
copies req->ring without holding ha->mq_lock. Concurrently, 
qla25xx_free_req_que() calls dma_free_coherent() on req->ring prior to 
acquiring ha->mq_lock to clear the map entry. If a firmware dump races with 
queue teardown, it might access already-freed DMA memory.

[ ... ]
> diff --git a/drivers/scsi/qla2xxx/qla_iocb.c b/drivers/scsi/qla2xxx/qla_iocb.c
> index 9038f67234448..13882a399fbc5 100644
> --- a/drivers/scsi/qla2xxx/qla_iocb.c
> +++ b/drivers/scsi/qla2xxx/qla_iocb.c
[ ... ]
> @@ -1620,13 +1640,13 @@ qla24xx_start_scsi(srb_t *sp)
>  	cmd->host_scribble = (unsigned char *)(unsigned long)handle;
>  	req->cnt -= req_cnt;
>  
> -	cmd_pkt = (struct cmd_type_7 *)req->ring_ptr;
> +	cmd_pkt = (struct cmd_type_7 *)qla_req_ring_slot(ha, req);
>  	cmd_pkt->handle = make_handle(req->id, handle);
>  
>  	/* Zero out remaining portion of packet. */
>  	/*    tagged queuing modifier -- default is TSK_SIMPLE (0). */
>  	clr_ptr = (uint32_t *)cmd_pkt + 2;
> -	memset(clr_ptr, 0, REQUEST_ENTRY_SIZE - 8);
> +	memset(clr_ptr, 0, qla_req_entry_size(ha) - 8);
>  	cmd_pkt->dseg_count = cpu_to_le16(tot_dsds);
>  
>  	/* Set NPORT-ID and LUN number*/

[Severity: High]
Might this format a 64-byte cmd_type_7 layout into a 128-byte slot on 29xx 
hardware?

Because this legacy non-MQ path doesn't branch to the extended builder, it 
writes the 8-bit vp_index to offset 51 instead of the 16-bit vp_index at 
offset 48, and places DSDs at offset 56 instead of 80. This could cause 
the firmware to read empty data segments resulting in DMA faults.

[ ... ]
> @@ -2343,10 +2447,20 @@ __qla2x00_alloc_iocbs(struct qla_qpair *qpair, srb_t *sp)
>  		sp->handle = handle;
>  	}
>  
> -	/* Prep packet */
> +	/*
> +	 * Prep packet.  29xx posts into a 128-byte-strided ring via
> +	 * ring_ext_ptr; the first 8 bytes of struct request_ext overlay the
> +	 * common request_t header, so entry_count/handle writes are
> +	 * layout-compatible once we return the pkt as request_t *.
> +	 */
>  	req->cnt -= req_cnt;
> -	pkt = req->ring_ptr;
> -	memset(pkt, 0, REQUEST_ENTRY_SIZE);
> +	if (IS_QLA29XX(ha)) {
> +		pkt = (request_t *)req->ring_ext_ptr;
> +		memset(pkt, 0, REQUEST_ENTRY_SIZE_EXT);
> +	} else {

[Severity: High]
Does returning a 128-byte slot here for all commands lead to memory 
corruption in the legacy dispatch paths?

Functions like qla2x00_start_sp() dispatch Task Management, Abort, and ELS 
LOGO commands to legacy 24xx builders (e.g., qla24xx_els_logo_iocb) which 
cast this 128-byte slot to the 64-byte structs. This causes critical fields 
like vp_index to be written as 8-bit values at incorrect offsets, which 
could misroute the commands to the physical port instead of the intended 
NPIV virtual port.

[ ... ]
> diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c
> index c47c38e099ff8..e95fb0e59f387 100644
> --- a/drivers/scsi/qla2xxx/qla_isr.c
> +++ b/drivers/scsi/qla2xxx/qla_isr.c
[ ... ]
> @@ -287,13 +281,7 @@ int __qla_copy_purex_to_buffer(struct scsi_qla_host *vha,
>  				break;
>  			}
>  
> -			rsp_q->ring_index++;
> -			if (rsp_q->ring_index == rsp_q->length) {
> -				rsp_q->ring_index = 0;
> -				rsp_q->ring_ptr = rsp_q->ring;
> -			} else {
> -				rsp_q->ring_ptr++;
> -			}
> +			qla_rsp_ring_advance(rsp_q);
>  			no_bytes = (pending_bytes > sizeof(new_pkt->data)) ?
>  			    sizeof(new_pkt->data) : pending_bytes;

[Severity: High]
Could this truncate the extended PUREX payload continuations?

The 29xx hardware places up to ~120 bytes of payload per 128-byte extended 
IOCB slot. However, bounding the copy length against sizeof(new_pkt->data) 
uses the legacy 64-byte limit. Because qla_rsp_ring_advance() steps by 128 
bytes, this skips over and permanently drops the remaining ~70 bytes of 
payload in each extended continuation IOCB. This same truncation issue 
appears in qla27xx_copy_fpin_pkt().

[ ... ]
> @@ -4003,13 +3980,7 @@ void qla24xx_process_response_queue(struct scsi_qla_host *vha,
>  		pkt = (struct sts_entry_24xx *)rsp->ring_ptr;
>  		cur_ring_index = rsp->ring_index;
>  
> -		rsp->ring_index++;
> -		if (rsp->ring_index == rsp->length) {
> -			rsp->ring_index = 0;
> -			rsp->ring_ptr = rsp->ring;
> -		} else {
> -			rsp->ring_ptr++;
> -		}
> +		qla_rsp_ring_advance(rsp);
>  
>  		if (pkt->entry_status != 0) {
>  			if (qla2x00_error_entry(vha, rsp, (sts_entry_t *) pkt))

[Severity: High]
Are we parsing the 128-byte 29xx extended status IOCB as a legacy 64-byte 
IOCB here?

For standard SCSI completions on 29xx hardware, the firmware generates 
sts_entry_24xx_ext where fields like scsi_status are at offset 48. Because 
qla2x00_status_entry() was not updated with an IS_QLA29XX() branch, it 
casts to the 64-byte sts_entry_24xx and reads scsi_status from offset 22. 
On 29xx, this offset holds the wr_sa_index, causing random SA index values 
to be interpreted as SCSI errors.

Additionally, did we miss updating qla27xx_copy_multiple_pkt() to use the 
new stride-aware qla_rsp_ring_advance() macro? It appears to still use 
rsp_q->ring_ptr++ which only increments by 64 bytes on 29xx hardware, 
desynchronizing the consumer pointer.

[ ... ]
> diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
> index 948242f0088e7..146701445485f 100644
> --- a/drivers/scsi/qla2xxx/qla_os.c
> +++ b/drivers/scsi/qla2xxx/qla_os.c
[ ... ]
> @@ -2693,6 +2697,7 @@ static struct isp_operations qla29xx_isp_ops = {
>  	.read_optrom_region	= qla29xx_read_optrom_data,
>  	.write_optrom_region	= qla29xx_write_optrom_data,
>  	.get_flash_version	= qla24xx_get_flash_version,
> +	.start_scsi		= qla24xx_dif_start_scsi,
>  	.start_scsi_mq		= qla2xxx_dif_start_scsi_mq,
>  	.abort_isp		= qla2x00_abort_isp,
>  	.iospace_config		= qla83xx_iospace_config,

[Severity: High]
Will assigning the legacy qla24xx_dif_start_scsi handler here corrupt 
the extended 29xx hardware rings?

If multiqueue is disabled or the block layer invokes this non-MQ hook, it 
formats 64-byte layouts (cmd_type_7, cmd_type_crc_2) into the 128-byte 
slots fetched via qla_req_ring_slot(). This writes the 8-bit vp_index to 
offset 51, corrupting the 16-bit vp_index and ctrl_flags_2 expected by 
29xx hardware.

[Severity: High]
This is a pre-existing issue, but can qla2x00_sp_free_dma() trigger a double 
free of the crc_ctx buffer?

When cleaning up a T10-DIF protected SCSI command, it frees the context:

qla2x00_sp_free_dma() {
    ...
    if (sp->u.scmd.crc_ctx) {
        dma_pool_free(ha->dl_dma_pool, sp->u.scmd.crc_ctx,
                      sp->u.scmd.crc_ctx->crc_ctx_dma);
    }
    ...
}

The pointer sp->u.scmd.crc_ctx is not set to NULL after being freed to the 
DMA pool. A subsequent check for the same pointer evaluates to true and 
attempts to free it again via mempool_free(), corrupting the ctx_mempool 
slab pool.

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260707055435.2680300-1-njavali@marvell.com?part=11

  reply	other threads:[~2026-07-07 10:27 UTC|newest]

Thread overview: 159+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-07  5:53 [PATCH v3 00/88] scsi: qla2xxx: Add QLA29xx series adapter support Nilesh Javali
2026-07-07  5:53 ` [PATCH v3 01/88] scsi: qla2xxx: Add 29xx series PCI device ID support Nilesh Javali
2026-07-07  6:21   ` sashiko-bot
2026-07-07  5:53 ` [PATCH v3 02/88] scsi: qla2xxx: Add flash read/write interface for 29xx Nilesh Javali
2026-07-07  8:24   ` sashiko-bot
2026-07-07  5:53 ` [PATCH v3 03/88] scsi: qla2xxx: Add NVRAM config support for 29xx adapters Nilesh Javali
2026-07-07  5:53 ` [PATCH v3 04/88] scsi: qla2xxx: Add 29xx support in queue initialisation path Nilesh Javali
2026-07-07  6:31   ` sashiko-bot
2026-07-07  5:53 ` [PATCH v3 05/88] scsi: qla2xxx: Add FC operational firmware load for 29xx Nilesh Javali
2026-07-07  6:17   ` sashiko-bot
2026-07-07  5:53 ` [PATCH v3 06/88] scsi: qla2xxx: Remove redundant VPD flash read in sysfs read path Nilesh Javali
2026-07-07  6:13   ` sashiko-bot
2026-07-07  5:53 ` [PATCH v3 07/88] scsi: qla2xxx: Add flash block read/write BSG support for 29xx Nilesh Javali
2026-07-07  6:21   ` sashiko-bot
2026-07-07  5:53 ` [PATCH v3 08/88] scsi: qla2xxx: Add BSG MPI firmware load/dump " Nilesh Javali
2026-07-07  6:13   ` sashiko-bot
2026-07-07  5:53 ` [PATCH v3 09/88] scsi: qla2xxx: Add 128-byte IOCB definitions " Nilesh Javali
2026-07-07  6:14   ` sashiko-bot
2026-07-07  5:53 ` [PATCH v3 10/88] scsi: qla2xxx: Add extended status continuation and marker IOCBs Nilesh Javali
2026-07-07  6:10   ` sashiko-bot
2026-07-07  5:53 ` [PATCH v3 11/88] scsi: qla2xxx: Update IO path to use 128-byte IOCBs for 29xx Nilesh Javali
2026-07-07 10:27   ` sashiko-bot [this message]
2026-07-07  5:53 ` [PATCH v3 12/88] scsi: qla2xxx: Skip image-set-valid attribute " Nilesh Javali
2026-07-07  6:12   ` sashiko-bot
2026-07-07  5:53 ` [PATCH v3 13/88] scsi: qla2xxx: Skip unsupported sysfs attributes " Nilesh Javali
2026-07-07  5:53 ` [PATCH v3 14/88] scsi: qla2xxx: Enable get_fw_version mailbox " Nilesh Javali
2026-07-07  6:12   ` sashiko-bot
2026-07-07  5:53 ` [PATCH v3 15/88] scsi: qla2xxx: Extend execute_fw mailbox to include 29xx Nilesh Javali
2026-07-07  6:23   ` sashiko-bot
2026-07-07  5:53 ` [PATCH v3 16/88] scsi: qla2xxx: Enable get_adapter_id mailbox for 29xx Nilesh Javali
2026-07-07  6:15   ` sashiko-bot
2026-07-07  5:53 ` [PATCH v3 17/88] scsi: qla2xxx: Enable init_firmware " Nilesh Javali
2026-07-07  5:53 ` [PATCH v3 18/88] scsi: qla2xxx: Enable get_firmware_state " Nilesh Javali
2026-07-07  6:15   ` sashiko-bot
2026-07-07  5:53 ` [PATCH v3 19/88] scsi: qla2xxx: Enable serdes, resource count and FCE trace " Nilesh Javali
2026-07-07  6:36   ` sashiko-bot
2026-07-07  5:53 ` [PATCH v3 20/88] scsi: qla2xxx: Enable set_els_cmds and echo_test " Nilesh Javali
2026-07-07  5:53 ` [PATCH v3 21/88] scsi: qla2xxx: Add support for QLA29XX in data rate functions Nilesh Javali
2026-07-07  5:53 ` [PATCH v3 22/88] scsi: qla2xxx: Enable qla2x00_shutdown for 29xx Nilesh Javali
2026-07-07  6:27   ` sashiko-bot
2026-07-07  5:53 ` [PATCH v3 23/88] scsi: qla2xxx: Use ring-slot helpers in __qla2x00_alloc_iocbs Nilesh Javali
2026-07-07  6:26   ` sashiko-bot
2026-07-07  5:53 ` [PATCH v3 24/88] scsi: qla2xxx: Add support for QLA29XX in memory allocation Nilesh Javali
2026-07-07  6:22   ` sashiko-bot
2026-07-07  5:53 ` [PATCH v3 25/88] scsi: qla2xxx: Handle sts_cont_entry_ext_t for 29xx adapters Nilesh Javali
2026-07-07  6:31   ` sashiko-bot
2026-07-07  5:53 ` [PATCH v3 26/88] scsi: qla2xxx: Update handling of status entries for 29xx series Nilesh Javali
2026-07-07  5:53 ` [PATCH v3 27/88] scsi: qla2xxx: Enhance ct_entry_24xx_ext iocb handling " Nilesh Javali
2026-07-07  6:40   ` sashiko-bot
2026-07-07  5:53 ` [PATCH v3 28/88] scsi: qla2xxx: Enhance purex_entry " Nilesh Javali
2026-07-07  6:35   ` sashiko-bot
2026-07-07  5:53 ` [PATCH v3 29/88] scsi: qla2xxx: Update handling of ELS IOCBs " Nilesh Javali
2026-07-07  6:35   ` sashiko-bot
2026-07-07  5:53 ` [PATCH v3 30/88] scsi: qla2xxx: Add size check for ELS status entry layout on 29xx Nilesh Javali
2026-07-07  6:31   ` sashiko-bot
2026-07-07  5:53 ` [PATCH v3 31/88] scsi: qla2xxx: Add 29xx extended logio IOCB support Nilesh Javali
2026-07-07  5:53 ` [PATCH v3 32/88] scsi: qla2xxx: Enhance task management IOCB handling for 29xx series Nilesh Javali
2026-07-07  5:53 ` [PATCH v3 33/88] scsi: qla2xxx: Add abort command " Nilesh Javali
2026-07-07  5:53 ` [PATCH v3 34/88] scsi: qla2xxx: Enhance ABTS processing " Nilesh Javali
2026-07-07  6:46   ` sashiko-bot
2026-07-07  5:53 ` [PATCH v3 35/88] scsi: qla2xxx: Update VP control IOCB handling " Nilesh Javali
2026-07-07  5:53 ` [PATCH v3 36/88] scsi: qla2xxx: Add build-time size check for VP config IOCB layout Nilesh Javali
2026-07-07  5:53 ` [PATCH v3 37/88] scsi: qla2xxx: Add size check for extended VP report ID entry Nilesh Javali
2026-07-07  6:46   ` sashiko-bot
2026-07-07  5:53 ` [PATCH v3 38/88] scsi: qla2xxx: Add LS4 pass-through IOCB handling for 29xx series Nilesh Javali
2026-07-07  6:45   ` sashiko-bot
2026-07-07  5:53 ` [PATCH v3 39/88] scsi: qla2xxx: Adjust feature gating in BSG paths for 29xx support Nilesh Javali
2026-07-07  6:48   ` sashiko-bot
2026-07-07  5:53 ` [PATCH v3 40/88] scsi: qla2xxx: Fix queue teardown NULL dma_free and bitmap locking Nilesh Javali
2026-07-07  6:50   ` sashiko-bot
2026-07-07  5:53 ` [PATCH v3 41/88] scsi: qla2xxx: Replace __le16 bitfields with scalar and accessors Nilesh Javali
2026-07-07  6:49   ` sashiko-bot
2026-07-07  5:53 ` [PATCH v3 42/88] scsi: qla2xxx: Fix endianness annotations in vp_rpt_id_entry structures Nilesh Javali
2026-07-07  5:53 ` [PATCH v3 43/88] scsi: qla2xxx: Use 64-bit FPM word counters for 29xx host stats Nilesh Javali
2026-07-07  6:49   ` sashiko-bot
2026-07-07  5:53 ` [PATCH v3 44/88] scsi: qla2xxx: Add 64G/128G port speed setting support Nilesh Javali
2026-07-07  6:52   ` sashiko-bot
2026-07-07  5:53 ` [PATCH v3 45/88] scsi: qla2xxx: Fix 64G link speed reporting in get_data_rate Nilesh Javali
2026-07-07  5:53 ` [PATCH v3 46/88] scsi: qla2xxx: edif: Fix NULL pointer deref in RX SA delete check Nilesh Javali
2026-07-07  7:09   ` sashiko-bot
2026-07-07  5:53 ` [PATCH v3 47/88] scsi: qla2xxx: Fix Name Server logout detection on FWI2 adapters Nilesh Javali
2026-07-07  6:53   ` sashiko-bot
2026-07-07  5:53 ` [PATCH v3 48/88] scsi: qla2xxx: Bound VP index against VP_CTRL IOCB bitmap size Nilesh Javali
2026-07-07  6:55   ` sashiko-bot
2026-07-07  5:53 ` [PATCH v3 49/88] scsi: qla2xxx: Check entry_status in qla24xx_modify_vp_config() Nilesh Javali
2026-07-07  6:54   ` sashiko-bot
2026-07-07  5:53 ` [PATCH v3 50/88] scsi: qla2xxx: Hold vport reference in qla24xx_report_id_acquisition() Nilesh Javali
2026-07-07  7:03   ` sashiko-bot
2026-07-07  5:53 ` [PATCH v3 51/88] scsi: qla2xxx: Initialize NVMe abort_work once at submission Nilesh Javali
2026-07-07  7:00   ` sashiko-bot
2026-07-07  5:53 ` [PATCH v3 52/88] scsi: qla2xxx: Hold qpair lock when sending NVMe LS reject Nilesh Javali
2026-07-07  7:07   ` sashiko-bot
2026-07-07  5:54 ` [PATCH v3 53/88] scsi: qla2xxx: Zero dport diagnostics buffer to avoid info leak Nilesh Javali
2026-07-07  7:06   ` sashiko-bot
2026-07-07  5:54 ` [PATCH v3 54/88] scsi: qla2xxx: Fix BSG job leak on validate flash image error path Nilesh Javali
2026-07-07  7:03   ` sashiko-bot
2026-07-07  5:54 ` [PATCH v3 55/88] scsi: qla2xxx: Bound image count in qla2x00_update_fru_versions() Nilesh Javali
2026-07-07  7:05   ` sashiko-bot
2026-07-07  5:54 ` [PATCH v3 56/88] scsi: qla2xxx: Clamp MSI-X derived queue counts to avoid truncation Nilesh Javali
2026-07-07  7:06   ` sashiko-bot
2026-07-07  5:54 ` [PATCH v3 57/88] scsi: qla2xxx: Improve firmware dump data capture Nilesh Javali
2026-07-07  7:18   ` sashiko-bot
2026-07-07  5:54 ` [PATCH v3 58/88] scsi: qla2xxx: Serialize flash version read in reset handler Nilesh Javali
2026-07-07  5:54 ` [PATCH v3 59/88] scsi: qla2xxx: Fix use-after-free of qpair work on queue teardown Nilesh Javali
2026-07-07  7:08   ` sashiko-bot
2026-07-07  5:54 ` [PATCH v3 60/88] scsi: qla2xxx: Clarify MPI optrom address/length units Nilesh Javali
2026-07-07  5:54 ` [PATCH v3 61/88] scsi: qla2xxx: Fix cs84xx use-after-free on host teardown Nilesh Javali
2026-07-07  7:11   ` sashiko-bot
2026-07-07  5:54 ` [PATCH v3 62/88] scsi: qla2xxx: Don't query firmware state while chip is down Nilesh Javali
2026-07-07  7:03   ` sashiko-bot
2026-07-07  5:54 ` [PATCH v3 63/88] scsi: qla2xxx: Zero mailbox struct in qla2x00_get_firmware_state() Nilesh Javali
2026-07-07  7:18   ` sashiko-bot
2026-07-07  5:54 ` [PATCH v3 64/88] scsi: qla2xxx: Fix FCE trace enable parsing in debugfs Nilesh Javali
2026-07-07  7:11   ` sashiko-bot
2026-07-07  5:54 ` [PATCH v3 65/88] scsi: qla2xxx: Fix FCE trace use-after-free during firmware dump Nilesh Javali
2026-07-07  7:25   ` sashiko-bot
2026-07-07  5:54 ` [PATCH v3 66/88] scsi: qla2xxx: Use memset_io() to clear QLAFX00 request ring slot Nilesh Javali
2026-07-07  7:26   ` sashiko-bot
2026-07-07  5:54 ` [PATCH v3 67/88] scsi: qla2xxx: Null out freed pointers in qla2x00_mem_alloc() error path Nilesh Javali
2026-07-07  7:25   ` sashiko-bot
2026-07-07  5:54 ` [PATCH v3 68/88] scsi: qla2xxx: Fix response queue over-consumption in __qla_consume_iocb() Nilesh Javali
2026-07-07  5:54 ` [PATCH v3 69/88] scsi: qla2xxx: Fix soft lockup polling continuation IOCB signature Nilesh Javali
2026-07-07  7:19   ` sashiko-bot
2026-07-07  5:54 ` [PATCH v3 70/88] scsi: qla2xxx: Bound rsp_info_len to avoid OOB sense-data read Nilesh Javali
2026-07-07  7:24   ` sashiko-bot
2026-07-07  5:54 ` [PATCH v3 71/88] scsi: qla2xxx: Avoid req_q_map double-read in qla2x00_error_entry() Nilesh Javali
2026-07-07  7:21   ` sashiko-bot
2026-07-07  5:54 ` [PATCH v3 72/88] scsi: qla2xxx: Quiesce response IRQ before freeing request queue Nilesh Javali
2026-07-07  7:22   ` sashiko-bot
2026-07-07  5:54 ` [PATCH v3 73/88] scsi: qla2xxx: Reject non-SCSI SRB on status IOCB fast path Nilesh Javali
2026-07-07  5:54 ` [PATCH v3 74/88] scsi: qla2xxx: Clamp max_npiv_vports to VP_CTRL bitmap capacity Nilesh Javali
2026-07-07  7:34   ` sashiko-bot
2026-07-07  5:54 ` [PATCH v3 75/88] scsi: qla2xxx: Avoid double completion in async IOCB timeout Nilesh Javali
2026-07-07  7:37   ` sashiko-bot
2026-07-07  5:54 ` [PATCH v3 76/88] scsi: qla2xxx: Skip vport under deletion in report ID acquisition Nilesh Javali
2026-07-07  7:27   ` sashiko-bot
2026-07-07  5:54 ` [PATCH v3 77/88] scsi: qla2xxx: Drop vport reference under lock " Nilesh Javali
2026-07-07  7:33   ` sashiko-bot
2026-07-07  5:54 ` [PATCH v3 78/88] scsi: qla2xxx: Hold vport_slock for host map update " Nilesh Javali
2026-07-07  7:28   ` sashiko-bot
2026-07-07  5:54 ` [PATCH v3 79/88] scsi: qla2xxx: Fix NVMe abort reference leak on repeated abort Nilesh Javali
2026-07-07  7:27   ` sashiko-bot
2026-07-07  5:54 ` [PATCH v3 80/88] scsi: qla2xxx: Skip NVMe LS reject IOCB when FW not started Nilesh Javali
2026-07-07  7:38   ` sashiko-bot
2026-07-07  5:54 ` [PATCH v3 81/88] scsi: qla2xxx: Unlink NVMe unsol ctx before freeing on LS reject error Nilesh Javali
2026-07-07  7:34   ` sashiko-bot
2026-07-07  5:54 ` [PATCH v3 82/88] scsi: qla2xxx: Serialize NVMe unsol ctx list with a per-fcport lock Nilesh Javali
2026-07-07  7:38   ` sashiko-bot
2026-07-07  5:54 ` [PATCH v3 83/88] scsi: qla2xxx: Use coherent DMA buffer for D_Port diagnostics Nilesh Javali
2026-07-07  7:34   ` sashiko-bot
2026-07-07  5:54 ` [PATCH v3 84/88] scsi: qla2xxx: Zero-init bsg stack buffers to avoid info leak Nilesh Javali
2026-07-07  7:37   ` sashiko-bot
2026-07-07  5:54 ` [PATCH v3 85/88] scsi: qla2xxx: Validate BSG request_len before reading vendor_cmd[] Nilesh Javali
2026-07-07  7:46   ` sashiko-bot
2026-07-07  5:54 ` [PATCH v3 86/88] scsi: qla2xxx: Zero SFP DMA buffer in FRU/I2C bsg handlers Nilesh Javali
2026-07-07  7:38   ` sashiko-bot
2026-07-07  5:54 ` [PATCH v3 87/88] scsi: qla2xxx: Bound i2c->length in I2C " Nilesh Javali
2026-07-07  5:54 ` [PATCH v3 88/88] scsi: qla2xxx: Update version to 12.00.00.2607b1 Nilesh Javali
2026-07-07  7:35   ` sashiko-bot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260707102708.869E11F00A3A@smtp.kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=njavali@marvell.com \
    --cc=sashiko-reviews@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.