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
