From: Andy Shevchenko Date: Wed, 30 Nov 2022 12:36:13 +0000 (+0200) Subject: net: thunderbolt: Use bitwise types in the struct thunderbolt_ip_frame_header X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=a479f9264bddfd0c266615b83f784222eccf9b91;p=linux.git net: thunderbolt: Use bitwise types in the struct thunderbolt_ip_frame_header The main usage of the struct thunderbolt_ip_frame_header is to handle the packets on the media layer. The header is bound to the protocol in which the byte ordering is crucial. However the data type definition doesn't use that and sparse is unhappy, for example (17 altogether): .../thunderbolt.c:718:23: warning: cast to restricted __le32 .../thunderbolt.c:966:42: warning: incorrect type in assignment (different base types) .../thunderbolt.c:966:42: expected unsigned int [usertype] frame_count .../thunderbolt.c:966:42: got restricted __le32 [usertype] Switch to the bitwise types in the struct thunderbolt_ip_frame_header to reduce this, but not completely solving (9 left), because the same data type is used for Rx header handled locally (in CPU byte order). Signed-off-by: Andy Shevchenko Acked-by: Mika Westerberg Signed-off-by: David S. Miller --- diff --git a/drivers/net/thunderbolt.c b/drivers/net/thunderbolt.c index c73d419f1456f..4ed7f5b547e31 100644 --- a/drivers/net/thunderbolt.c +++ b/drivers/net/thunderbolt.c @@ -58,10 +58,10 @@ * supported then @frame_id is filled, otherwise it stays %0. */ struct thunderbolt_ip_frame_header { - u32 frame_size; - u16 frame_index; - u16 frame_id; - u32 frame_count; + __le32 frame_size; + __le16 frame_index; + __le16 frame_id; + __le32 frame_count; }; enum thunderbolt_ip_frame_pdf {