Element phy_type is a bitmask and it only ever has 2
bits possibly set, and it is overkill to define as a u64,
so redefine as a u32.

This change resolves static code check complaint that
"phy->phy_type &= ~PORT_TYPE_SAS;" would
unintentionally clear the high 32 bits as well.

Structure hisi_sas_phy is also reordered to ensure
packing efficiency.

Reported-by: Dan Carpenter <dan.carpen...@oracle.com>
Signed-off-by: John Garry <john.ga...@huawei.com>

diff --git a/drivers/scsi/hisi_sas/hisi_sas.h b/drivers/scsi/hisi_sas/hisi_sas.h
index 4fc2308..22dd48b 100644
--- a/drivers/scsi/hisi_sas/hisi_sas.h
+++ b/drivers/scsi/hisi_sas/hisi_sas.h
@@ -85,11 +85,11 @@ struct hisi_sas_phy {
        struct work_struct      phyup_ws;
        u64             port_id; /* from hw */
        u64             dev_sas_addr;
-       u64             phy_type;
        u64             frame_rcvd_size;
        u8              frame_rcvd[32];
        u8              phy_attached;
        u8              reserved[3];
+       u32             phy_type;
        enum sas_linkrate       minimum_linkrate;
        enum sas_linkrate       maximum_linkrate;
 };
-- 
1.9.1

Reply via email to