net: ethtool: fix wrong type used in struct kernel_ethtool_ts_info
authorRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
Sun, 7 Sep 2025 20:43:20 +0000 (21:43 +0100)
committerJakub Kicinski <kuba@kernel.org>
Thu, 11 Sep 2025 00:43:28 +0000 (17:43 -0700)
commit6fef6ae764be8a77f61ad3b6937ba82fe8358045
tree33cc07178254860c3cabf3537928dc2e670984e1
parent78dd8ad62cad4f5af22afc842890d531312bbb8a
net: ethtool: fix wrong type used in struct kernel_ethtool_ts_info

In C, enumerated types do not have a defined size, apart from being
compatible with one of the standard types. This allows an ABI /
compiler to choose the type of an enum depending on the values it
needs to store, and storing larger values in it can lead to undefined
behaviour.

The tx_type and rx_filters members of struct kernel_ethtool_ts_info
are defined as enumerated types, but are bit arrays, where each bit
is defined by the enumerated type. This means they typically store
values in excess of the maximum value of the enumerated type, in
fact (1 << max_value) and thus must not be declared using the
enumated type.

Fix both of these to use u32, as per the corresponding __u32 UAPI type.

Fixes: 2111375b85ad ("net: Add struct kernel_ethtool_ts_info")
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Reviewed-by: Kory Maincent <kory.maincent@bootlin.com>
Link: https://patch.msgid.link/E1uvMEK-00000003Amd-2pWR@rmk-PC.armlinux.org.uk
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
include/linux/ethtool.h