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

main.c:993:23: warning: incorrect type in initializer (different base types)
main.c:993:23:    expected restricted __wsum [usertype] wsum
main.c:993:23:    got restricted __be32 [usertype]

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 27f8573..6a43ced 100644 (file)
@@ -991,8 +991,10 @@ static bool tbnet_xmit_csum_and_map(struct tbnet *net, struct sk_buff *skb,
 {
        struct thunderbolt_ip_frame_header *hdr = page_address(frames[0]->page);
        struct device *dma_dev = tb_ring_dma_device(net->tx_ring.ring);
-       __wsum wsum = htonl(skb->len - skb_transport_offset(skb));
        unsigned int i, len, offset = skb_transport_offset(skb);
+       /* Remove payload length from checksum */
+       u32 paylen = skb->len - skb_transport_offset(skb);
+       __wsum wsum = (__force __wsum)htonl(paylen);
        __be16 protocol = skb->protocol;
        void *data = skb->data;
        void *dest = hdr + 1;