phy: warn if phylib and ethtool PHY mode definitions are out of sync
authorHeiner Kallweit <hkallweit1@gmail.com>
Sat, 13 Apr 2019 18:53:43 +0000 (20:53 +0200)
committerDavid S. Miller <davem@davemloft.net>
Sun, 14 Apr 2019 20:37:06 +0000 (13:37 -0700)
If new PHY modes are added people may miss to update all relevant places
in the kernel. Therefore add a build bug check for new modes in enum
ethtool_link_mode_bit_indices that haven't been added to phylib yet.

Suggested-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/phy/phy-core.c

index 2366d720ffd773fcd7b9cbb5be894b194cc91e9c..12ce671020a5dede2f484558152429f0c0d6e568 100644 (file)
@@ -8,6 +8,11 @@
 
 const char *phy_speed_to_str(int speed)
 {
+       BUILD_BUG_ON_MSG(__ETHTOOL_LINK_MODE_MASK_NBITS != 67,
+               "Enum ethtool_link_mode_bit_indices and phylib are out of sync. "
+               "If a speed or mode has been added please update phy_speed_to_str "
+               "and the PHY settings array.\n");
+
        switch (speed) {
        case SPEED_10:
                return "10Mbps";