mlx5ib: Fix sign extension in mlx5_ib_query_device
"fw_rev_min(dev->mdev)" with type "unsigned short" (16 bits, unsigned) is promoted in "fw_rev_min(dev->mdev) << 16" to type "int" (32 bits, signed), then sign-extended to type "unsigned long" (64 bits, unsigned). If "fw_rev_min(dev->mdev) << 16" is greater than 0x7FFFFFFF, the upper bits of the result will all be 1. Approved by: hselasky (mentor) MFC after: 1 week Sponsored by: Mellanox Technologies
This commit is contained in:
parent
31c3f64819
commit
c9e9b5c104
@ -605,7 +605,7 @@ static int mlx5_ib_query_device(struct ib_device *ibdev,
|
||||
return err;
|
||||
|
||||
props->fw_ver = ((u64)fw_rev_maj(dev->mdev) << 32) |
|
||||
(fw_rev_min(dev->mdev) << 16) |
|
||||
((u32)fw_rev_min(dev->mdev) << 16) |
|
||||
fw_rev_sub(dev->mdev);
|
||||
props->device_cap_flags = IB_DEVICE_CHANGE_PHY_PORT |
|
||||
IB_DEVICE_PORT_ACTIVE_EVENT |
|
||||
|
Loading…
Reference in New Issue
Block a user