From: Dave Marquardt <[email protected]>

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 <[email protected]>
Signed-off-by: Tyrel Datwyler <[email protected]>
---
 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


Reply via email to