scsi: smartpqi: correct BMIC identify physical drive
authorKevin Barnett <kevin.barnett@hpe.com>
Wed, 3 May 2017 23:53:42 +0000 (18:53 -0500)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 13 Jun 2017 00:48:02 +0000 (20:48 -0400)
correct the BMIC Identify Physical Device structure
 - missing 2 fields

Reviewed-by: Scott Benesh <scott.benesh@microsemi.com>
Signed-off-by: Kevin Barnett <kevin.barnett@microsemi.com>
Signed-off-by: Don Brace <don.brace@microsemi.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/smartpqi/smartpqi.h
drivers/scsi/smartpqi/smartpqi_init.c

index 1ac09e7..e74d3ed 100644 (file)
@@ -1126,9 +1126,9 @@ struct bmic_identify_physical_device {
        u8      multi_lun_device_lun_count;
        u8      minimum_good_fw_revision[8];
        u8      unique_inquiry_bytes[20];
-       u8      current_temperature_degreesC;
-       u8      temperature_threshold_degreesC;
-       u8      max_temperature_degreesC;
+       u8      current_temperature_degrees;
+       u8      temperature_threshold_degrees;
+       u8      max_temperature_degrees;
        u8      logical_blocks_per_phys_block_exp;
        __le16  current_queue_depth_limit;
        u8      switch_name[10];
@@ -1141,10 +1141,22 @@ struct bmic_identify_physical_device {
        u8      smart_carrier_authentication;
        u8      smart_carrier_app_fw_version;
        u8      smart_carrier_bootloader_fw_version;
+       u8      sanitize_flags;
+       u8      encryption_key_flags;
        u8      encryption_key_name[64];
        __le32  misc_drive_flags;
        __le16  dek_index;
-       u8      padding[112];
+       __le16  hba_drive_encryption_flags;
+       __le16  max_overwrite_time;
+       __le16  max_block_erase_time;
+       __le16  max_crypto_erase_time;
+       u8      connector_info[5];
+       u8      connector_name[8][8];
+       u8      page_83_identifier[16];
+       u8      maximum_link_rate[256];
+       u8      negotiated_physical_link_rate[256];
+       u8      box_connector_name[8];
+       u8      padding_to_multiple_of_512[9];
 };
 
 #pragma pack()
index fa21dd4..acf47d8 100644 (file)
@@ -6982,6 +6982,22 @@ static void __attribute__((unused)) verify_structures(void)
        BUILD_BUG_ON(offsetof(struct bmic_identify_controller,
                controller_mode) != 292);
 
+       BUILD_BUG_ON(offsetof(struct bmic_identify_physical_device,
+               phys_bay_in_box) != 115);
+       BUILD_BUG_ON(offsetof(struct bmic_identify_physical_device,
+               device_type) != 120);
+       BUILD_BUG_ON(offsetof(struct bmic_identify_physical_device,
+               redundant_path_present_map) != 1736);
+       BUILD_BUG_ON(offsetof(struct bmic_identify_physical_device,
+               active_path_number) != 1738);
+       BUILD_BUG_ON(offsetof(struct bmic_identify_physical_device,
+               alternate_paths_phys_connector) != 1739);
+       BUILD_BUG_ON(offsetof(struct bmic_identify_physical_device,
+               alternate_paths_phys_box_on_port) != 1755);
+       BUILD_BUG_ON(offsetof(struct bmic_identify_physical_device,
+               current_queue_depth_limit) != 1796);
+       BUILD_BUG_ON(sizeof(struct bmic_identify_physical_device) != 2560);
+
        BUILD_BUG_ON(PQI_ADMIN_IQ_NUM_ELEMENTS > 255);
        BUILD_BUG_ON(PQI_ADMIN_OQ_NUM_ELEMENTS > 255);
        BUILD_BUG_ON(PQI_ADMIN_IQ_ELEMENT_LENGTH %