Re: [PATCH v4 3/8] mpi3mr: move data structures/definitions from MPI headers to uapi header

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




> On Apr 13, 2022, at 7:56 AM, Sumit Saxena <sumit.saxena@xxxxxxxxxxxx> wrote:
> 
> This patch moves the data structures/definitions which are used by
> user space applications from MPI headers to uapi/scsi/scsi_bsg_mpi3mr.h
> 
> Signed-off-by: Sumit Saxena <sumit.saxena@xxxxxxxxxxxx>
> ---
> drivers/scsi/mpi3mr/mpi/mpi30_init.h |  53 ----------
> drivers/scsi/mpi3mr/mpi/mpi30_ioc.h  |  28 ------
> drivers/scsi/mpi3mr/mpi/mpi30_pci.h  |  31 +-----
> drivers/scsi/mpi3mr/mpi3mr.h         |   1 +
> include/uapi/scsi/scsi_bsg_mpi3mr.h  | 139 +++++++++++++++++++++++++++
> 5 files changed, 141 insertions(+), 111 deletions(-)
> 
> diff --git a/drivers/scsi/mpi3mr/mpi/mpi30_init.h b/drivers/scsi/mpi3mr/mpi/mpi30_init.h
> index e2e8b22e9122..aac11c58cca9 100644
> --- a/drivers/scsi/mpi3mr/mpi/mpi30_init.h
> +++ b/drivers/scsi/mpi3mr/mpi/mpi30_init.h
> @@ -115,57 +115,4 @@ struct mpi3_scsi_io_reply {
> #define MPI3_SCSI_RSP_ARI0_MASK                 (0xff000000)
> #define MPI3_SCSI_RSP_ARI0_SHIFT                (24)
> #define MPI3_SCSI_TASKTAG_UNKNOWN               (0xffff)
> -struct mpi3_scsi_task_mgmt_request {
> -	__le16                     host_tag;
> -	u8                         ioc_use_only02;
> -	u8                         function;
> -	__le16                     ioc_use_only04;
> -	u8                         ioc_use_only06;
> -	u8                         msg_flags;
> -	__le16                     change_count;
> -	__le16                     dev_handle;
> -	__le16                     task_host_tag;
> -	u8                         task_type;
> -	u8                         reserved0f;
> -	__le16                     task_request_queue_id;
> -	__le16                     reserved12;
> -	__le32                     reserved14;
> -	u8                         lun[8];
> -};
> -
> -#define MPI3_SCSITASKMGMT_MSGFLAGS_DO_NOT_SEND_TASK_IU      (0x08)
> -#define MPI3_SCSITASKMGMT_TASKTYPE_ABORT_TASK               (0x01)
> -#define MPI3_SCSITASKMGMT_TASKTYPE_ABORT_TASK_SET           (0x02)
> -#define MPI3_SCSITASKMGMT_TASKTYPE_TARGET_RESET             (0x03)
> -#define MPI3_SCSITASKMGMT_TASKTYPE_LOGICAL_UNIT_RESET       (0x05)
> -#define MPI3_SCSITASKMGMT_TASKTYPE_CLEAR_TASK_SET           (0x06)
> -#define MPI3_SCSITASKMGMT_TASKTYPE_QUERY_TASK               (0x07)
> -#define MPI3_SCSITASKMGMT_TASKTYPE_CLEAR_ACA                (0x08)
> -#define MPI3_SCSITASKMGMT_TASKTYPE_QUERY_TASK_SET           (0x09)
> -#define MPI3_SCSITASKMGMT_TASKTYPE_QUERY_ASYNC_EVENT        (0x0a)
> -#define MPI3_SCSITASKMGMT_TASKTYPE_I_T_NEXUS_RESET          (0x0b)
> -struct mpi3_scsi_task_mgmt_reply {
> -	__le16                     host_tag;
> -	u8                         ioc_use_only02;
> -	u8                         function;
> -	__le16                     ioc_use_only04;
> -	u8                         ioc_use_only06;
> -	u8                         msg_flags;
> -	__le16                     ioc_use_only08;
> -	__le16                     ioc_status;
> -	__le32                     ioc_log_info;
> -	__le32                     termination_count;
> -	__le32                     response_data;
> -	__le32                     reserved18;
> -};
> -
> -#define MPI3_SCSITASKMGMT_RSPCODE_TM_COMPLETE                (0x00)
> -#define MPI3_SCSITASKMGMT_RSPCODE_INVALID_FRAME              (0x02)
> -#define MPI3_SCSITASKMGMT_RSPCODE_TM_FUNCTION_NOT_SUPPORTED  (0x04)
> -#define MPI3_SCSITASKMGMT_RSPCODE_TM_FAILED                  (0x05)
> -#define MPI3_SCSITASKMGMT_RSPCODE_TM_SUCCEEDED               (0x08)
> -#define MPI3_SCSITASKMGMT_RSPCODE_TM_INVALID_LUN             (0x09)
> -#define MPI3_SCSITASKMGMT_RSPCODE_TM_OVERLAPPED_TAG          (0x0a)
> -#define MPI3_SCSITASKMGMT_RSPCODE_IO_QUEUED_ON_IOC           (0x80)
> -#define MPI3_SCSITASKMGMT_RSPCODE_TM_NVME_DENIED             (0x81)
> #endif
> diff --git a/drivers/scsi/mpi3mr/mpi/mpi30_ioc.h b/drivers/scsi/mpi3mr/mpi/mpi30_ioc.h
> index 633037dc7012..7b306580d30f 100644
> --- a/drivers/scsi/mpi3mr/mpi/mpi30_ioc.h
> +++ b/drivers/scsi/mpi3mr/mpi/mpi30_ioc.h
> @@ -38,17 +38,6 @@ struct mpi3_ioc_init_request {
> #define MPI3_WHOINIT_ROM_BIOS                            (0x02)
> #define MPI3_WHOINIT_HOST_DRIVER                         (0x03)
> #define MPI3_WHOINIT_MANUFACTURER                        (0x04)
> -struct mpi3_driver_info_layout {
> -	__le32             information_length;
> -	u8                 driver_signature[12];
> -	u8                 os_name[16];
> -	u8                 os_version[12];
> -	u8                 driver_name[20];
> -	u8                 driver_version[32];
> -	u8                 driver_release_date[20];
> -	__le32             driver_capabilities;
> -};
> -
> struct mpi3_ioc_facts_request {
> 	__le16                 host_tag;
> 	u8                     ioc_use_only02;
> @@ -647,23 +636,6 @@ struct mpi3_event_data_diag_buffer_status_change {
> #define MPI3_EVENT_DIAG_BUFFER_STATUS_CHANGE_RC_RELEASED             (0x01)
> #define MPI3_EVENT_DIAG_BUFFER_STATUS_CHANGE_RC_PAUSED               (0x02)
> #define MPI3_EVENT_DIAG_BUFFER_STATUS_CHANGE_RC_RESUMED              (0x03)
> -#define MPI3_PEL_LOCALE_FLAGS_NON_BLOCKING_BOOT_EVENT   (0x0200)
> -#define MPI3_PEL_LOCALE_FLAGS_BLOCKING_BOOT_EVENT       (0x0100)
> -#define MPI3_PEL_LOCALE_FLAGS_PCIE                      (0x0080)
> -#define MPI3_PEL_LOCALE_FLAGS_CONFIGURATION             (0x0040)
> -#define MPI3_PEL_LOCALE_FLAGS_CONTROLER                 (0x0020)
> -#define MPI3_PEL_LOCALE_FLAGS_SAS                       (0x0010)
> -#define MPI3_PEL_LOCALE_FLAGS_EPACK                     (0x0008)
> -#define MPI3_PEL_LOCALE_FLAGS_ENCLOSURE                 (0x0004)
> -#define MPI3_PEL_LOCALE_FLAGS_PD                        (0x0002)
> -#define MPI3_PEL_LOCALE_FLAGS_VD                        (0x0001)
> -#define MPI3_PEL_CLASS_DEBUG                            (0x00)
> -#define MPI3_PEL_CLASS_PROGRESS                         (0x01)
> -#define MPI3_PEL_CLASS_INFORMATIONAL                    (0x02)
> -#define MPI3_PEL_CLASS_WARNING                          (0x03)
> -#define MPI3_PEL_CLASS_CRITICAL                         (0x04)
> -#define MPI3_PEL_CLASS_FATAL                            (0x05)
> -#define MPI3_PEL_CLASS_FAULT                            (0x06)
> #define MPI3_PEL_CLEARTYPE_CLEAR                        (0x00)
> #define MPI3_PEL_WAITTIME_INFINITE_WAIT                 (0x00)
> #define MPI3_PEL_ACTION_GET_SEQNUM                      (0x01)
> diff --git a/drivers/scsi/mpi3mr/mpi/mpi30_pci.h b/drivers/scsi/mpi3mr/mpi/mpi30_pci.h
> index 77270f577f90..901dbd788940 100644
> --- a/drivers/scsi/mpi3mr/mpi/mpi30_pci.h
> +++ b/drivers/scsi/mpi3mr/mpi/mpi30_pci.h
> @@ -5,24 +5,6 @@
>  */
> #ifndef MPI30_PCI_H
> #define MPI30_PCI_H     1
> -#ifndef MPI3_NVME_ENCAP_CMD_MAX
> -#define MPI3_NVME_ENCAP_CMD_MAX               (1)
> -#endif
> -struct mpi3_nvme_encapsulated_request {
> -	__le16                     host_tag;
> -	u8                         ioc_use_only02;
> -	u8                         function;
> -	__le16                     ioc_use_only04;
> -	u8                         ioc_use_only06;
> -	u8                         msg_flags;
> -	__le16                     change_count;
> -	__le16                     dev_handle;
> -	__le16                     encapsulated_command_length;
> -	__le16                     flags;
> -	__le32                     data_length;
> -	__le32                     reserved14[3];
> -	__le32                     command[MPI3_NVME_ENCAP_CMD_MAX];
> -};
> 
> #define MPI3_NVME_FLAGS_FORCE_ADMIN_ERR_REPLY_MASK      (0x0002)
> #define MPI3_NVME_FLAGS_FORCE_ADMIN_ERR_REPLY_FAIL_ONLY (0x0000)
> @@ -30,16 +12,5 @@ struct mpi3_nvme_encapsulated_request {
> #define MPI3_NVME_FLAGS_SUBMISSIONQ_MASK                (0x0001)
> #define MPI3_NVME_FLAGS_SUBMISSIONQ_IO                  (0x0000)
> #define MPI3_NVME_FLAGS_SUBMISSIONQ_ADMIN               (0x0001)
> -struct mpi3_nvme_encapsulated_error_reply {
> -	__le16                     host_tag;
> -	u8                         ioc_use_only02;
> -	u8                         function;
> -	__le16                     ioc_use_only04;
> -	u8                         ioc_use_only06;
> -	u8                         msg_flags;
> -	__le16                     ioc_use_only08;
> -	__le16                     ioc_status;
> -	__le32                     ioc_log_info;
> -	__le32                     nvme_completion_entry[4];
> -};
> +
> #endif
> diff --git a/drivers/scsi/mpi3mr/mpi3mr.h b/drivers/scsi/mpi3mr/mpi3mr.h
> index 877b0925dbc5..fb05aab48aa7 100644
> --- a/drivers/scsi/mpi3mr/mpi3mr.h
> +++ b/drivers/scsi/mpi3mr/mpi3mr.h
> @@ -38,6 +38,7 @@
> #include <scsi/scsi_device.h>
> #include <scsi/scsi_host.h>
> #include <scsi/scsi_tcq.h>
> +#include <uapi/scsi/scsi_bsg_mpi3mr.h>
> 
> #include "mpi/mpi30_transport.h"
> #include "mpi/mpi30_cnfg.h"
> diff --git a/include/uapi/scsi/scsi_bsg_mpi3mr.h b/include/uapi/scsi/scsi_bsg_mpi3mr.h
> index 2319fc48ed78..870e6d87dd03 100644
> --- a/include/uapi/scsi/scsi_bsg_mpi3mr.h
> +++ b/include/uapi/scsi/scsi_bsg_mpi3mr.h
> @@ -81,6 +81,28 @@ enum command {
> 	MPI3MR_MPT_CMD = 2,
> };
> 
> +/**
> + * struct mpi3_driver_info_layout - Information about driver
> + *
> + * @information_length: Length of this structure in bytes
> + * @driver_signature: Driver Vendor name
> + * @os_name: Operating System Name
> + * @driver_name: Driver name
> + * @driver_version: Driver version
> + * @driver_release_date: Driver release date
> + * @driver_capabilities: Driver capabilities
> + */
> +struct mpi3_driver_info_layout {
> +	__le32             information_length;
> +	u8                 driver_signature[12];
> +	u8                 os_name[16];
> +	u8                 os_version[12];
> +	u8                 driver_name[20];
> +	u8                 driver_version[32];
> +	u8                 driver_release_date[20];
> +	__le32             driver_capabilities;
> +};
> +
> /**
>  * struct mpi3mr_bsg_in_adpinfo - Adapter information request
>  * data returned by the driver.
> @@ -430,4 +452,121 @@ struct mpi3mr_bsg_packet {
> 		struct mpi3mr_bsg_mptcmd mptcmd;
> 	} cmd;
> };
> +
> +
> +/* MPI3: NVMe Encasulation related definitions */
> +#ifndef MPI3_NVME_ENCAP_CMD_MAX
> +#define MPI3_NVME_ENCAP_CMD_MAX               (1)
> +#endif
> +
> +struct mpi3_nvme_encapsulated_request {
> +	__le16                     host_tag;
> +	u8                         ioc_use_only02;
> +	u8                         function;
> +	__le16                     ioc_use_only04;
> +	u8                         ioc_use_only06;
> +	u8                         msg_flags;
> +	__le16                     change_count;
> +	__le16                     dev_handle;
> +	__le16                     encapsulated_command_length;
> +	__le16                     flags;
> +	__le32                     data_length;
> +	__le32                     reserved14[3];
> +	__le32                     command[MPI3_NVME_ENCAP_CMD_MAX];
> +};
> +
> +struct mpi3_nvme_encapsulated_error_reply {
> +	__le16                     host_tag;
> +	u8                         ioc_use_only02;
> +	u8                         function;
> +	__le16                     ioc_use_only04;
> +	u8                         ioc_use_only06;
> +	u8                         msg_flags;
> +	__le16                     ioc_use_only08;
> +	__le16                     ioc_status;
> +	__le32                     ioc_log_info;
> +	__le32                     nvme_completion_entry[4];
> +};
> +
> +/* MPI3: task management related definitions */
> +struct mpi3_scsi_task_mgmt_request {
> +	__le16                     host_tag;
> +	u8                         ioc_use_only02;
> +	u8                         function;
> +	__le16                     ioc_use_only04;
> +	u8                         ioc_use_only06;
> +	u8                         msg_flags;
> +	__le16                     change_count;
> +	__le16                     dev_handle;
> +	__le16                     task_host_tag;
> +	u8                         task_type;
> +	u8                         reserved0f;
> +	__le16                     task_request_queue_id;
> +	__le16                     reserved12;
> +	__le32                     reserved14;
> +	u8                         lun[8];
> +};
> +
> +#define MPI3_SCSITASKMGMT_MSGFLAGS_DO_NOT_SEND_TASK_IU      (0x08)
> +#define MPI3_SCSITASKMGMT_TASKTYPE_ABORT_TASK               (0x01)
> +#define MPI3_SCSITASKMGMT_TASKTYPE_ABORT_TASK_SET           (0x02)
> +#define MPI3_SCSITASKMGMT_TASKTYPE_TARGET_RESET             (0x03)
> +#define MPI3_SCSITASKMGMT_TASKTYPE_LOGICAL_UNIT_RESET       (0x05)
> +#define MPI3_SCSITASKMGMT_TASKTYPE_CLEAR_TASK_SET           (0x06)
> +#define MPI3_SCSITASKMGMT_TASKTYPE_QUERY_TASK               (0x07)
> +#define MPI3_SCSITASKMGMT_TASKTYPE_CLEAR_ACA                (0x08)
> +#define MPI3_SCSITASKMGMT_TASKTYPE_QUERY_TASK_SET           (0x09)
> +#define MPI3_SCSITASKMGMT_TASKTYPE_QUERY_ASYNC_EVENT        (0x0a)
> +#define MPI3_SCSITASKMGMT_TASKTYPE_I_T_NEXUS_RESET          (0x0b)
> +struct mpi3_scsi_task_mgmt_reply {
> +	__le16                     host_tag;
> +	u8                         ioc_use_only02;
> +	u8                         function;
> +	__le16                     ioc_use_only04;
> +	u8                         ioc_use_only06;
> +	u8                         msg_flags;
> +	__le16                     ioc_use_only08;
> +	__le16                     ioc_status;
> +	__le32                     ioc_log_info;
> +	__le32                     termination_count;
> +	__le32                     response_data;
> +	__le32                     reserved18;
> +};
> +
> +#define MPI3_SCSITASKMGMT_RSPCODE_TM_COMPLETE                (0x00)
> +#define MPI3_SCSITASKMGMT_RSPCODE_INVALID_FRAME              (0x02)
> +#define MPI3_SCSITASKMGMT_RSPCODE_TM_FUNCTION_NOT_SUPPORTED  (0x04)
> +#define MPI3_SCSITASKMGMT_RSPCODE_TM_FAILED                  (0x05)
> +#define MPI3_SCSITASKMGMT_RSPCODE_TM_SUCCEEDED               (0x08)
> +#define MPI3_SCSITASKMGMT_RSPCODE_TM_INVALID_LUN             (0x09)
> +#define MPI3_SCSITASKMGMT_RSPCODE_TM_OVERLAPPED_TAG          (0x0a)
> +#define MPI3_SCSITASKMGMT_RSPCODE_IO_QUEUED_ON_IOC           (0x80)
> +#define MPI3_SCSITASKMGMT_RSPCODE_TM_NVME_DENIED             (0x81)
> +
> +/* MPI3: PEL related definitions */
> +#define MPI3_PEL_LOCALE_FLAGS_NON_BLOCKING_BOOT_EVENT   (0x0200)
> +#define MPI3_PEL_LOCALE_FLAGS_BLOCKING_BOOT_EVENT       (0x0100)
> +#define MPI3_PEL_LOCALE_FLAGS_PCIE                      (0x0080)
> +#define MPI3_PEL_LOCALE_FLAGS_CONFIGURATION             (0x0040)
> +#define MPI3_PEL_LOCALE_FLAGS_CONTROLER                 (0x0020)
> +#define MPI3_PEL_LOCALE_FLAGS_SAS                       (0x0010)
> +#define MPI3_PEL_LOCALE_FLAGS_EPACK                     (0x0008)
> +#define MPI3_PEL_LOCALE_FLAGS_ENCLOSURE                 (0x0004)
> +#define MPI3_PEL_LOCALE_FLAGS_PD                        (0x0002)
> +#define MPI3_PEL_LOCALE_FLAGS_VD                        (0x0001)
> +#define MPI3_PEL_CLASS_DEBUG                            (0x00)
> +#define MPI3_PEL_CLASS_PROGRESS                         (0x01)
> +#define MPI3_PEL_CLASS_INFORMATIONAL                    (0x02)
> +#define MPI3_PEL_CLASS_WARNING                          (0x03)
> +#define MPI3_PEL_CLASS_CRITICAL                         (0x04)
> +#define MPI3_PEL_CLASS_FATAL                            (0x05)
> +#define MPI3_PEL_CLASS_FAULT                            (0x06)
> +
> +/* MPI3: Function definitions */
> +#define MPI3_BSG_FUNCTION_MGMT_PASSTHROUGH              (0x0a)
> +#define MPI3_BSG_FUNCTION_SCSI_IO                       (0x20)
> +#define MPI3_BSG_FUNCTION_SCSI_TASK_MGMT                (0x21)
> +#define MPI3_BSG_FUNCTION_SMP_PASSTHROUGH               (0x22)
> +#define MPI3_BSG_FUNCTION_NVME_ENCAPSULATED             (0x24)
> +
> #endif
> -- 
> 2.27.0
> 

Looks Good.

Reviewed-by: Himanshu Madhani <himanshu.madhani@xxxxxxxxxx>

--
Himanshu Madhani	 Oracle Linux Engineering





[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux