]> www.infradead.org Git - users/jedix/linux-maple.git/commit
net: usb: sr9700: only store little-endian values in __le16 variable
authorSimon Horman <horms@kernel.org>
Wed, 16 Oct 2024 14:31:14 +0000 (15:31 +0100)
committerAndrew Lunn <andrew@lunn.ch>
Thu, 17 Oct 2024 23:09:13 +0000 (18:09 -0500)
commit4b726103796a9058ea77fd0905879ecc04951ef1
treee6aa7867bdceb1fc00908818175aae2811f66ddb
parentff1d3484d6d29dda92421b9a753e4ca54f91aa8a
net: usb: sr9700: only store little-endian values in __le16 variable

In sr_mdio_read() the local variable res is used to store both
little-endian and host byte order values. This prevents Sparse
from helping us by flagging when endian miss matches occur - the
detection process hinges on the type of variables matching the
byte order of values stored in them.

Address this by adding a new local variable, word, to store little-endian
values; change the type of res to int, and use it to store host-byte
order values.

Flagged by Sparse as:

.../sr9700.c:205:21: warning: incorrect type in assignment (different base types)
.../sr9700.c:205:21:    expected restricted __le16 [addressable] [usertype] res
.../sr9700.c:205:21:    got int
.../sr9700.c:207:21: warning: incorrect type in assignment (different base types)
.../sr9700.c:207:21:    expected restricted __le16 [addressable] [usertype] res
.../sr9700.c:207:21:    got int
.../sr9700.c:212:16: warning: incorrect type in return expression (different base types)
.../sr9700.c:212:16:    expected int
.../sr9700.c:212:16:    got restricted __le16 [addressable] [usertype] res

Compile tested only.
No functional change intended.

Signed-off-by: Simon Horman <horms@kernel.org>
Message-ID: <20241016-blackbird-le16-v1-1-97ba8de6b38f@kernel.org>
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
drivers/net/usb/sr9700.c