Re: [PATCH 2/9] thunderblot: Don't pass a bitfield to FIELD_GET
From: David Laight <hidden>
Date: 2025-12-10 09:34:07
Also in:
linux-usb, lkml
On Wed, 10 Dec 2025 06:56:17 +0100 Mika Westerberg [off-list ref] wrote:
$subject has typo: thunderblot -> thunderbolt ;-) On Tue, Dec 09, 2025 at 10:03:06AM +0000, david.laight.linux@gmail.com wrote:quoted
From: David Laight <redacted> FIELD_GET needs to use __auto_type to get the value of the 'reg' parameter, this can't be used with bifields. FIELD_GET also want to verify the size of 'reg' so can't add zero to force the type to int. So add a zero here. Signed-off-by: David Laight <redacted> --- drivers/thunderbolt/tb.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)diff --git a/drivers/thunderbolt/tb.h b/drivers/thunderbolt/tb.h index e96474f17067..7ca2b5a0f01e 100644 --- a/drivers/thunderbolt/tb.h +++ b/drivers/thunderbolt/tb.h@@ -1307,7 +1307,7 @@ static inline struct tb_retimer *tb_to_retimer(struct device *dev) */ static inline unsigned int usb4_switch_version(const struct tb_switch *sw) { - return FIELD_GET(USB4_VERSION_MAJOR_MASK, sw->config.thunderbolt_version); + return FIELD_GET(USB4_VERSION_MAJOR_MASK, sw->config.thunderbolt_version + 0);Can't this use a cast instead? If not then can you also add a comment here because next someone will send a patch "fixing" the unnecessary addition.
A cast can do other (possibly incorrect) conversions, adding zero is never going to so any 'damage' - even if it looks a bit odd. Actually, I suspect the best thing here is to delete USB4_VERSION_MAJOR_MASK and just do: /* The major version is in the top 3 bits */ return sw->config.thunderbolt_version > 5; The only other uses of thunderbolt_version are debug prints (in decimal). David
quoted
} /** -- 2.39.5