[PATCH v12 06/11] scsi: ibmvfc: add FPIN extended flag and async sub-CRQ queue handle
From: Dave Marquardt via B4 Relay
Date: Wed Sep 30 2026 - 15:43:28 EST
From: Dave Marquardt <davemarq@xxxxxxxxxxxxx>
Add IBMVFC_ASYNC_IS_FPIN_EXT flag bit (0x02) to ibmvfc_async_sub_crq.flags
to distinguish extended FPIN events from standard ones.
Add async_scrqs field of type ibmvfc_channels to ibmvfc_host to hold the
channel set for the asynchronous sub-CRQ, alongside the existing scsi_scrqs
and nvme_scrqs channels. This uses the same ibmvfc_channels infrastructure
as the SCSI and NVMe channel queues.
Add IBMVFC_ASYNC_SUB_CRQ_FMT to enum ibmvfc_msg_fmt and a corresponding
async_scrq pointer to union ibmvfc_msgs to support the new async sub-CRQ
message format.
Signed-off-by: Dave Marquardt <davemarq@xxxxxxxxxxxxx>
Signed-off-by: Tyrel Datwyler <tyreld@xxxxxxxxxxxxx>
---
drivers/scsi/ibmvscsi/ibmvfc.h | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/scsi/ibmvscsi/ibmvfc.h b/drivers/scsi/ibmvscsi/ibmvfc.h
index d7a30e7a4a28..df2f312fd7b9 100644
--- a/drivers/scsi/ibmvscsi/ibmvfc.h
+++ b/drivers/scsi/ibmvscsi/ibmvfc.h
@@ -773,6 +773,7 @@ struct ibmvfc_async_sub_crq {
volatile u8 valid;
u8 flags;
#define IBMVFC_ASYNC_ID_IS_ASSOC_ID 0x01
+#define IBMVFC_ASYNC_IS_FPIN_EXT 0x02
u8 link_state;
u8 fpin_status;
__be16 event;
@@ -893,6 +894,7 @@ enum ibmvfc_msg_fmt {
IBMVFC_CRQ_FMT = 0,
IBMVFC_ASYNC_FMT,
IBMVFC_SUB_CRQ_FMT,
+ IBMVFC_ASYNC_SUB_CRQ_FMT,
};
union ibmvfc_msgs {
@@ -900,6 +902,7 @@ union ibmvfc_msgs {
struct ibmvfc_crq *crq;
struct ibmvfc_async_crq *async;
struct ibmvfc_sub_crq *scrq;
+ struct ibmvfc_async_sub_crq *async_scrq;
};
struct ibmvfc_queue {
@@ -992,6 +995,7 @@ struct ibmvfc_host {
struct ibmvfc_queue async_crq;
struct ibmvfc_channels scsi_scrqs;
struct ibmvfc_channels nvme_scrqs;
+ struct ibmvfc_channels async_scrqs;
struct ibmvfc_npiv_login login_info;
union ibmvfc_npiv_login_data *login_buf;
dma_addr_t login_buf_dma;
--
2.55.0