Re: [PATCH 3/6] ibmvfc: add new fields for version 2 of several MADs

From: Brian King
Date: Tue Nov 17 2020 - 17:07:24 EST


On 11/11/20 7:04 PM, Tyrel Datwyler wrote:
> @@ -211,7 +214,9 @@ struct ibmvfc_npiv_login_resp {
> __be64 capabilities;
> #define IBMVFC_CAN_FLUSH_ON_HALT 0x08
> #define IBMVFC_CAN_SUPPRESS_ABTS 0x10
> -#define IBMVFC_CAN_SUPPORT_CHANNELS 0x20
> +#define IBMVFC_MAD_VERSION_CAP 0x20
> +#define IBMVFC_HANDLE_VF_WWPN 0x40
> +#define IBMVFC_CAN_SUPPORT_CHANNELS 0x80
> __be32 max_cmds;
> __be32 scsi_id_sz;
> __be64 max_dma_len;
> @@ -293,6 +298,7 @@ struct ibmvfc_port_login {
> __be32 reserved2;
> struct ibmvfc_service_parms service_parms;
> struct ibmvfc_service_parms service_parms_change;
> + __be64 targetWWPN;

For consistency, can you make this target_wwpn?

> __be64 reserved3[2];
> } __packed __aligned(8);
>
> @@ -344,6 +350,7 @@ struct ibmvfc_process_login {
> __be16 status;
> __be16 error; /* also fc_reason */
> __be32 reserved2;
> + __be64 targetWWPN;

For consistency, can you make this target_wwpn?

> __be64 reserved3[2];
> } __packed __aligned(8);
>
> @@ -378,6 +385,8 @@ struct ibmvfc_tmf {
> __be32 cancel_key;
> __be32 my_cancel_key;
> __be32 pad;
> + __be64 targetWWPN;

For consistency, can you make this target_wwpn?

> + __be64 taskTag;

and make this task_tag.

> __be64 reserved[2];
> } __packed __aligned(8);
>
> @@ -474,9 +483,19 @@ struct ibmvfc_cmd {
> __be64 correlation;
> __be64 tgt_scsi_id;
> __be64 tag;
> - __be64 reserved3[2];
> - struct ibmvfc_fcp_cmd_iu iu;
> - struct ibmvfc_fcp_rsp rsp;
> + __be64 targetWWPN;

For consistency, can you make this target_wwpn?

> + __be64 reserved3;
> + union {
> + struct {
> + struct ibmvfc_fcp_cmd_iu iu;
> + struct ibmvfc_fcp_rsp rsp;
> + } v1;
> + struct {
> + __be64 reserved4;
> + struct ibmvfc_fcp_cmd_iu iu;
> + struct ibmvfc_fcp_rsp rsp;
> + } v2;
> + };
> } __packed __aligned(8);
>
> struct ibmvfc_passthru_fc_iu {
> @@ -503,6 +522,7 @@ struct ibmvfc_passthru_iu {
> __be64 correlation;
> __be64 scsi_id;
> __be64 tag;
> + __be64 targetWWPN;

For consistency, can you make this target_wwpn?

> __be64 reserved2[2];
> } __packed __aligned(8);
>
>


--
Brian King
Power Linux I/O
IBM Linux Technology Center