Similarly to sas report general and discovery responses, define the
structure struct smp_rps_resp to handle SATA PHY report responses using a
structure with a size that is exactly equal to the sas defined response
size.
With this change, struct smp_resp becomes unused and is removed.
Link: https://lore.kernel.org/r/20220609022456.409087-4-damien.lemoal@opensource.wdc.com
Reviewed-by: John Garry <john.garry@huawei.com>
Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
                flags |= OPEN_REQUIRED;
                if ((dev->dev_type == SAS_SATA_DEV) ||
                    (dev->tproto & SAS_PROTOCOL_STP)) {
-                       struct smp_resp *rps_resp = &dev->sata_dev.rps_resp;
+                       struct smp_rps_resp *rps_resp = &dev->sata_dev.rps_resp;
                        if (rps_resp->frame_type == SMP_RESPONSE &&
                            rps_resp->function == SMP_REPORT_PHY_SATA &&
                            rps_resp->result == SMP_RESP_FUNC_ACC) {
 
 #ifdef CONFIG_SCSI_SAS_ATA
 
 #define RPS_REQ_SIZE  16
-#define RPS_RESP_SIZE 60
+#define RPS_RESP_SIZE sizeof(struct smp_rps_resp)
 
 int sas_get_report_phy_sata(struct domain_device *dev, int phy_id,
-                           struct smp_resp *rps_resp)
+                           struct smp_rps_resp *rps_resp)
 {
        int res;
        u8 *rps_req = alloc_smp_req(RPS_REQ_SIZE);
 
 struct domain_device *sas_ex_to_ata(struct domain_device *ex_dev, int phy_id);
 int sas_ex_phy_discover(struct domain_device *dev, int single);
 int sas_get_report_phy_sata(struct domain_device *dev, int phy_id,
-                           struct smp_resp *rps_resp);
+                           struct smp_rps_resp *rps_resp);
 int sas_try_ata_reset(struct asd_sas_phy *phy);
 void sas_hae_reset(struct work_struct *work);
 
 
 
        struct ata_port *ap;
        struct ata_host *ata_host;
-       struct smp_resp rps_resp ____cacheline_aligned; /* report_phy_sata_resp */
+       struct smp_rps_resp rps_resp ____cacheline_aligned; /* report_phy_sata_resp */
        u8     fis[ATA_RESP_FIS_SIZE];
 };
 
 
        struct discover_resp disc;
 } __attribute__ ((packed));
 
-struct smp_resp {
+struct smp_rps_resp {
        u8    frame_type;
        u8    function;
        u8    result;
        u8    reserved;
-       union {
-               struct report_general_resp  rg;
-               struct discover_resp        disc;
-               struct report_phy_sata_resp rps;
-       };
+       struct report_phy_sata_resp rps;
 } __attribute__ ((packed));
 
 #endif /* _SAS_H_ */