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.
Showing the changes to include (1 of 1 file). Show all
Unified · Split
| @@ -111,7 +111,7 @@ struct ethtool_link_ext_state_info { · 110 unmodified lines | |||
| 111 | enum ethtool_link_ext_substate_bad_signal_integrity bad_signal_integrity; | 111 | enum ethtool_link_ext_substate_bad_signal_integrity bad_signal_integrity; |
| 112 | enum ethtool_link_ext_substate_cable_issue cable_issue; | 112 | enum ethtool_link_ext_substate_cable_issue cable_issue; |
| 113 | enum ethtool_link_ext_substate_module module; | 113 | enum ethtool_link_ext_substate_module module; |
| 114 | u8 __link_ext_substate; | 114 | u32 __link_ext_substate; |
| 115 | }; | 115 | }; |
| 116 | }; | 116 | }; |
| 117 | 117 | ||