ethtool: Fix link extended state for big endian
authorMoshe Tal <moshet@nvidia.com>
Thu, 20 Jan 2022 09:55:50 +0000 (11:55 +0200)
committerDavid S. Miller <davem@davemloft.net>
Thu, 20 Jan 2022 11:30:15 +0000 (11:30 +0000)
The link extended sub-states are assigned as enum that is an integer
size but read from a union as u8, this is working for small values on
little endian systems but for big endian this always give 0. Fix the
variable in the union to match the enum size.

Fixes: ecc31c60240b ("ethtool: Add link extended state")
Signed-off-by: Moshe Tal <moshet@nvidia.com>
Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Tested-by: Ido Schimmel <idosch@nvidia.com>
Reviewed-by: Gal Pressman <gal@nvidia.com>
Reviewed-by: Amit Cohen <amcohen@nvidia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/ethtool.h

index a26f37a2716762164c2e936460c2106a37e3c829..11efc45de66a9e60ff7b2d10b49ea9f22397895a 100644 (file)
@@ -111,7 +111,7 @@ struct ethtool_link_ext_state_info {
                enum ethtool_link_ext_substate_bad_signal_integrity bad_signal_integrity;
                enum ethtool_link_ext_substate_cable_issue cable_issue;
                enum ethtool_link_ext_substate_module module;
-               u8 __link_ext_substate;
+               u32 __link_ext_substate;
        };
 };