Re: [PATCH v5 3/7] scsi: ibmvfc: define asynchronous sub-queue

[email protected] Thu, 06 Aug 2026 15:32:11 +0000
Newsgroups gmane.linux.scsi
Message-ID <[email protected]>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] The patch is heavily flawed due to a botched rebase or split: it introduces dead, duplicate structures and an unused pointer, while the commit message describes changes that are completely absent from the diff.
--

--- Patch [3]: [PATCH v5 3/7] scsi: ibmvfc: define asynchronous sub-queue ---
commit 3e3cb1faf7e598eb3299f36518825168d60237a2
Author: Dave Marquardt <[email protected]>

scsi: ibmvfc: define asynchronous sub-queue

This commit defines data structures for asynchronous sub-queue support required
for full and extended FPIN functionality.

> Update ibmvfc_channel_setup structure to include async_subq_handle field
> and reduce IBMVFC_MAX_CHANNELS from 502 to 501 to accommodate the async
> sub-queue. Add async_scrq pointer to ibmvfc_channels structure.
> 
> Add capability flags IBMVFC_USE_ASYNC_SUBQ and IBMVFC_SUPPORT_ASYNC_SUBQ
> for negotiating async sub-queue support with VIOS during login.

[Severity: Medium]
Are the changes described in these paragraphs of the commit message missing
from this patch? The updates to ibmvfc_channel_setup, the reduction of
IBMVFC_MAX_CHANNELS, and the new capability flags do not appear in the
diff below.

> diff --git a/drivers/scsi/ibmvscsi/ibmvfc.h b/drivers/scsi/ibmvscsi/ibmvfc.h
> index e8ca0d30f483f..3711be4b6748c 100644
> --- a/drivers/scsi/ibmvscsi/ibmvfc.h
> +++ b/drivers/scsi/ibmvscsi/ibmvfc.h
> @@ -791,6 +791,25 @@ struct ibmvfc_async_work {
>  	struct work_struct async_work_s;
>  };
>  
> +struct ibmvfc_async_subq {
> +	volatile u8 valid;
> +#define IBMVFC_ASYNC_ID_IS_ASSOC_ID	0x01
> +#define IBMVFC_FC_EEH			0x04
> +#define IBMVFC_FC_FW_UPDATE		0x08
> +#define IBMVFC_FC_FW_DUMP		0x10
> +	u8 flags;

[Severity: Medium]
Is this new ibmvfc_async_subq structure actually needed, or could this be an
accidental duplicate from a rebase?

It appears to be functionally identical to the pre-existing
ibmvfc_async_sub_crq defined earlier in the same file:

struct ibmvfc_async_sub_crq {
	volatile u8 valid;
	u8 flags;
#define IBMVFC_ASYNC_ID_IS_ASSOC_ID	0x01
	u8 link_state;
	u8 fpin_status;
	...

This newly added structure doesn't appear to be used anywhere.

[ ... ]

> @@ -935,6 +954,7 @@ struct ibmvfc_queue {
>  
>  struct ibmvfc_channels {
>  	struct ibmvfc_queue *scrqs;
> +	struct ibmvfc_queue *async_scrq;

[Severity: Medium]
Is this async_scrq pointer intended to be used? It is added to
ibmvfc_channels here but appears completely unused.

-- 
Sashiko AI review ยท https://sashiko.dev/#/patchset/[email protected]?part=3