Re: [PATCH] RDMA/efa: Fix node guid compiler warning

Margolin, Michael
2024-09-26T12:56:49Z

On 9/24/2024 9:00 PM, Jason Gunthorpe wrote:

> CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you can confirm the sender and know the content is safe.
>
>
>
> On Tue, Sep 24, 2024 at 12:16:03PM +0000, Michael Margolin wrote:
>> The GUID is received in big-endian so align types accordingly to avoid
>> compiler warnings.
>>
>> Closes: https://lore.kernel.org/oe-kbuild-all/202409032113.bvyVfsNp-lkp@intel.com/
>>
>> Fixes: 04e36fd27a2a ("RDMA/efa: Add support for node guid")
>> Reported-by: kernel test robot <lkp@intel.com>
>> Reviewed-by: Yehuda Yitschak <yehuday@amazon.com>
>> Reviewed-by: Yonatan Nachum <ynachum@amazon.com>
>> Signed-off-by: Michael Margolin <mrgolin@amazon.com>
>> ---
>> drivers/infiniband/hw/efa/efa_com_cmd.c | 2 +-
>> drivers/infiniband/hw/efa/efa_com_cmd.h | 2 +-
>> 2 files changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/infiniband/hw/efa/efa_com_cmd.c b/drivers/infiniband/hw/efa/efa_com_cmd.c
>> index 5a774925cdea..5754da4e6ff8 100644
>> --- a/drivers/infiniband/hw/efa/efa_com_cmd.c
>> +++ b/drivers/infiniband/hw/efa/efa_com_cmd.c
>> @@ -465,7 +465,7 @@ int efa_com_get_device_attr(struct efa_com_dev *edev,
>> result->db_bar = resp.u.device_attr.db_bar;
>> result->max_rdma_size = resp.u.device_attr.max_rdma_size;
>> result->device_caps = resp.u.device_attr.device_caps;
>> - result->guid = resp.u.device_attr.guid;
>> + result->guid = (__force __be64)resp.u.device_attr.guid;
> That can't be right, use the proper conversion function, or the proper
> type..
>
> Jason
The current assumption in the driver is that data from the device
arrives in a correct byte order for the CPU, while the guid field is in
reversed order.

Would you suggest doing something like:

>- result->guid = resp.u.device_attr.guid;
>+ result->guid = __cpu_to_be64(__swab64(resp.u.device_attr.guid));

Michael