net: ftmac100: fix endianness-related issues from 'sparse'
authorSergei Antonov <saproj@gmail.com>
Fri, 2 Sep 2022 11:37:49 +0000 (14:37 +0300)
committerPaolo Abeni <pabeni@redhat.com>
Tue, 6 Sep 2022 08:24:05 +0000 (10:24 +0200)
Sparse found a number of endianness-related issues of these kinds:

.../ftmac100.c:192:32: warning: restricted __le32 degrades to integer

.../ftmac100.c:208:23: warning: incorrect type in assignment (different base types)
.../ftmac100.c:208:23:    expected unsigned int rxdes0
.../ftmac100.c:208:23:    got restricted __le32 [usertype]

.../ftmac100.c:249:23: warning: invalid assignment: &=
.../ftmac100.c:249:23:    left side has type unsigned int
.../ftmac100.c:249:23:    right side has type restricted __le32

.../ftmac100.c:527:16: warning: cast to restricted __le32

Change type of some fields from 'unsigned int' to '__le32' to fix it.

Signed-off-by: Sergei Antonov <saproj@gmail.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Link: https://lore.kernel.org/r/20220902113749.1408562-1-saproj@gmail.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/ethernet/faraday/ftmac100.h

index fe986f1..8af32f9 100644 (file)
  * Transmit descriptor, aligned to 16 bytes
  */
 struct ftmac100_txdes {
-       unsigned int    txdes0;
-       unsigned int    txdes1;
-       unsigned int    txdes2; /* TXBUF_BADR */
+       __le32          txdes0;
+       __le32          txdes1;
+       __le32          txdes2; /* TXBUF_BADR */
        unsigned int    txdes3; /* not used by HW */
 } __attribute__ ((aligned(16)));
 
@@ -143,9 +143,9 @@ struct ftmac100_txdes {
  * Receive descriptor, aligned to 16 bytes
  */
 struct ftmac100_rxdes {
-       unsigned int    rxdes0;
-       unsigned int    rxdes1;
-       unsigned int    rxdes2; /* RXBUF_BADR */
+       __le32          rxdes0;
+       __le32          rxdes1;
+       __le32          rxdes2; /* RXBUF_BADR */
        unsigned int    rxdes3; /* not used by HW */
 } __attribute__ ((aligned(16)));