net: vxget: clean up sparse warnings
authorJakub Kicinski <kuba@kernel.org>
Sat, 12 Dec 2020 23:44:26 +0000 (15:44 -0800)
committerJakub Kicinski <kuba@kernel.org>
Tue, 15 Dec 2020 03:18:11 +0000 (19:18 -0800)
This code is copying strings in 64 bit quantities, the device
returns them in big endian. As long as we store in big endian
IOW endian on both sides matches, we're good, so swap to_be64,
not from be64.

This fixes ~60 sparse warnings.

Link: https://lore.kernel.org/r/20201212234426.177015-1-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/neterion/vxge/vxge-config.c

index da48dd85770c00019f0264be91104e2d1a66900d..5162b938a1ac0bde5a85083d701fa36b18c26104 100644 (file)
@@ -871,11 +871,11 @@ static enum vxge_hw_status
 __vxge_hw_vpath_card_info_get(struct __vxge_hw_virtualpath *vpath,
                              struct vxge_hw_device_hw_info *hw_info)
 {
+       __be64 *serial_number = (void *)hw_info->serial_number;
+       __be64 *product_desc = (void *)hw_info->product_desc;
+       __be64 *part_number = (void *)hw_info->part_number;
        enum vxge_hw_status status;
        u64 data0, data1 = 0, steer_ctrl = 0;
-       u8 *serial_number = hw_info->serial_number;
-       u8 *part_number = hw_info->part_number;
-       u8 *product_desc = hw_info->product_desc;
        u32 i, j = 0;
 
        data0 = VXGE_HW_RTS_ACCESS_STEER_DATA0_MEMO_ITEM_SERIAL_NUMBER;
@@ -887,8 +887,8 @@ __vxge_hw_vpath_card_info_get(struct __vxge_hw_virtualpath *vpath,
        if (status != VXGE_HW_OK)
                return status;
 
-       ((u64 *)serial_number)[0] = be64_to_cpu(data0);
-       ((u64 *)serial_number)[1] = be64_to_cpu(data1);
+       serial_number[0] = cpu_to_be64(data0);
+       serial_number[1] = cpu_to_be64(data1);
 
        data0 = VXGE_HW_RTS_ACCESS_STEER_DATA0_MEMO_ITEM_PART_NUMBER;
        data1 = steer_ctrl = 0;
@@ -900,8 +900,8 @@ __vxge_hw_vpath_card_info_get(struct __vxge_hw_virtualpath *vpath,
        if (status != VXGE_HW_OK)
                return status;
 
-       ((u64 *)part_number)[0] = be64_to_cpu(data0);
-       ((u64 *)part_number)[1] = be64_to_cpu(data1);
+       part_number[0] = cpu_to_be64(data0);
+       part_number[1] = cpu_to_be64(data1);
 
        for (i = VXGE_HW_RTS_ACCESS_STEER_DATA0_MEMO_ITEM_DESC_0;
             i <= VXGE_HW_RTS_ACCESS_STEER_DATA0_MEMO_ITEM_DESC_3; i++) {
@@ -915,8 +915,8 @@ __vxge_hw_vpath_card_info_get(struct __vxge_hw_virtualpath *vpath,
                if (status != VXGE_HW_OK)
                        return status;
 
-               ((u64 *)product_desc)[j++] = be64_to_cpu(data0);
-               ((u64 *)product_desc)[j++] = be64_to_cpu(data1);
+               product_desc[j++] = cpu_to_be64(data0);
+               product_desc[j++] = cpu_to_be64(data1);
        }
 
        return status;