scsi: hisi_sas: redefine hisi_sas_phy.phy_type as u32

Message ID 1498472848-174945-1-git-send-email-john.garry@huawei.com
State New
Headers show

Commit Message

John Garry June 26, 2017, 10:27 a.m.
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.carpenter@oracle.com>
Signed-off-by: John Garry <john.garry@huawei.com>


-- 
1.9.1

Comments

Martin K. Petersen June 26, 2017, 5:41 p.m. | #1
John,

> 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.


Applied to 4.13/scsi-queue, thanks!

-- 
Martin K. Petersen	Oracle Linux Engineering

Patch

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;
 };