net: thunderbolt: Fix sparse warnings in tbnet_check_frame() and tbnet_poll()
authorMika Westerberg <mika.westerberg@linux.intel.com>
Tue, 11 Apr 2023 09:10:47 +0000 (12:10 +0300)
committerJakub Kicinski <kuba@kernel.org>
Thu, 13 Apr 2023 04:09:12 +0000 (21:09 -0700)
Fixes the following warnings when the driver is built with sparse
checks enabled:

main.c:767:47: warning: restricted __le32 degrades to integer
main.c:775:47: warning: restricted __le16 degrades to integer
main.c:776:44: warning: restricted __le16 degrades to integer
main.c:876:40: warning: incorrect type in assignment (different base types)
main.c:876:40:    expected restricted __le32 [usertype] frame_size
main.c:876:40:    got unsigned int [assigned] [usertype] frame_size
main.c:877:41: warning: incorrect type in assignment (different base types)
main.c:877:41:    expected restricted __le32 [usertype] frame_count
main.c:877:41:    got unsigned int [usertype]
main.c:878:41: warning: incorrect type in assignment (different base types)
main.c:878:41:    expected restricted __le16 [usertype] frame_index
main.c:878:41:    got unsigned short [usertype]
main.c:879:38: warning: incorrect type in assignment (different base types)
main.c:879:38:    expected restricted __le16 [usertype] frame_id
main.c:879:38:    got unsigned short [usertype]
main.c:880:62: warning: restricted __le32 degrades to integer
main.c:880:35: warning: restricted __le16 degrades to integer

No functional changes intended.

Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Reviewed-by: Simon Horman <simon.horman@corigine.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/thunderbolt/main.c

index 26ef3706445eecccf12cca2c830769090a392835..27f8573a2b6e3608d34bf508418013c4d007c382 100644 (file)
@@ -764,7 +764,7 @@ static bool tbnet_check_frame(struct tbnet *net, const struct tbnet_frame *tf,
         */
        if (net->skb && net->rx_hdr.frame_count) {
                /* Check the frame count fits the count field */
-               if (frame_count != net->rx_hdr.frame_count) {
+               if (frame_count != le32_to_cpu(net->rx_hdr.frame_count)) {
                        net->stats.rx_length_errors++;
                        return false;
                }
@@ -772,8 +772,8 @@ static bool tbnet_check_frame(struct tbnet *net, const struct tbnet_frame *tf,
                /* Check the frame identifiers are incremented correctly,
                 * and id is matching.
                 */
-               if (frame_index != net->rx_hdr.frame_index + 1 ||
-                   frame_id != net->rx_hdr.frame_id) {
+               if (frame_index != le16_to_cpu(net->rx_hdr.frame_index) + 1 ||
+                   frame_id != le16_to_cpu(net->rx_hdr.frame_id)) {
                        net->stats.rx_missed_errors++;
                        return false;
                }
@@ -873,11 +873,12 @@ static int tbnet_poll(struct napi_struct *napi, int budget)
                                        TBNET_RX_PAGE_SIZE - hdr_size);
                }
 
-               net->rx_hdr.frame_size = frame_size;
-               net->rx_hdr.frame_count = le32_to_cpu(hdr->frame_count);
-               net->rx_hdr.frame_index = le16_to_cpu(hdr->frame_index);
-               net->rx_hdr.frame_id = le16_to_cpu(hdr->frame_id);
-               last = net->rx_hdr.frame_index == net->rx_hdr.frame_count - 1;
+               net->rx_hdr.frame_size = hdr->frame_size;
+               net->rx_hdr.frame_count = hdr->frame_count;
+               net->rx_hdr.frame_index = hdr->frame_index;
+               net->rx_hdr.frame_id = hdr->frame_id;
+               last = le16_to_cpu(net->rx_hdr.frame_index) ==
+                      le32_to_cpu(net->rx_hdr.frame_count) - 1;
 
                rx_packets++;
                net->stats.rx_bytes += frame_size;