diff options
author | Russell King <rmk+kernel@armlinux.org.uk> | 2017-12-15 11:09:47 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-12-18 14:57:48 -0500 |
commit | 8b874514c11d6fcf9a92289255bc9c093d1ec706 (patch) | |
tree | 82f1b95dcc29f9a6f9dea655dd5d29962e4ace4c | |
parent | 2794ffc441dde3109804085dc745e8014a4de224 (diff) |
phylink: fix locking asserts
Use ASSERT_RTNL() rather than WARN_ON(!lockdep_rtnl_is_held()) which
stops working when lockdep fires, and we end up with lots of warnings.
Fixes: 9525ae83959b ("phylink: add phylink infrastructure")
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/phy/phylink.c | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/drivers/net/phy/phylink.c b/drivers/net/phy/phylink.c index 69adc0aa141c..f7a777475762 100644 --- a/drivers/net/phy/phylink.c +++ b/drivers/net/phy/phylink.c | |||
@@ -807,7 +807,7 @@ void phylink_disconnect_phy(struct phylink *pl) | |||
807 | { | 807 | { |
808 | struct phy_device *phy; | 808 | struct phy_device *phy; |
809 | 809 | ||
810 | WARN_ON(!lockdep_rtnl_is_held()); | 810 | ASSERT_RTNL(); |
811 | 811 | ||
812 | phy = pl->phydev; | 812 | phy = pl->phydev; |
813 | if (phy) { | 813 | if (phy) { |
@@ -877,7 +877,7 @@ EXPORT_SYMBOL_GPL(phylink_mac_change); | |||
877 | */ | 877 | */ |
878 | void phylink_start(struct phylink *pl) | 878 | void phylink_start(struct phylink *pl) |
879 | { | 879 | { |
880 | WARN_ON(!lockdep_rtnl_is_held()); | 880 | ASSERT_RTNL(); |
881 | 881 | ||
882 | netdev_info(pl->netdev, "configuring for %s/%s link mode\n", | 882 | netdev_info(pl->netdev, "configuring for %s/%s link mode\n", |
883 | phylink_an_mode_str(pl->link_an_mode), | 883 | phylink_an_mode_str(pl->link_an_mode), |
@@ -917,7 +917,7 @@ EXPORT_SYMBOL_GPL(phylink_start); | |||
917 | */ | 917 | */ |
918 | void phylink_stop(struct phylink *pl) | 918 | void phylink_stop(struct phylink *pl) |
919 | { | 919 | { |
920 | WARN_ON(!lockdep_rtnl_is_held()); | 920 | ASSERT_RTNL(); |
921 | 921 | ||
922 | if (pl->phydev) | 922 | if (pl->phydev) |
923 | phy_stop(pl->phydev); | 923 | phy_stop(pl->phydev); |
@@ -941,7 +941,7 @@ EXPORT_SYMBOL_GPL(phylink_stop); | |||
941 | */ | 941 | */ |
942 | void phylink_ethtool_get_wol(struct phylink *pl, struct ethtool_wolinfo *wol) | 942 | void phylink_ethtool_get_wol(struct phylink *pl, struct ethtool_wolinfo *wol) |
943 | { | 943 | { |
944 | WARN_ON(!lockdep_rtnl_is_held()); | 944 | ASSERT_RTNL(); |
945 | 945 | ||
946 | wol->supported = 0; | 946 | wol->supported = 0; |
947 | wol->wolopts = 0; | 947 | wol->wolopts = 0; |
@@ -966,7 +966,7 @@ int phylink_ethtool_set_wol(struct phylink *pl, struct ethtool_wolinfo *wol) | |||
966 | { | 966 | { |
967 | int ret = -EOPNOTSUPP; | 967 | int ret = -EOPNOTSUPP; |
968 | 968 | ||
969 | WARN_ON(!lockdep_rtnl_is_held()); | 969 | ASSERT_RTNL(); |
970 | 970 | ||
971 | if (pl->phydev) | 971 | if (pl->phydev) |
972 | ret = phy_ethtool_set_wol(pl->phydev, wol); | 972 | ret = phy_ethtool_set_wol(pl->phydev, wol); |
@@ -1011,7 +1011,7 @@ int phylink_ethtool_ksettings_get(struct phylink *pl, | |||
1011 | { | 1011 | { |
1012 | struct phylink_link_state link_state; | 1012 | struct phylink_link_state link_state; |
1013 | 1013 | ||
1014 | WARN_ON(!lockdep_rtnl_is_held()); | 1014 | ASSERT_RTNL(); |
1015 | 1015 | ||
1016 | if (pl->phydev) { | 1016 | if (pl->phydev) { |
1017 | phy_ethtool_ksettings_get(pl->phydev, kset); | 1017 | phy_ethtool_ksettings_get(pl->phydev, kset); |
@@ -1064,7 +1064,7 @@ int phylink_ethtool_ksettings_set(struct phylink *pl, | |||
1064 | struct phylink_link_state config; | 1064 | struct phylink_link_state config; |
1065 | int ret; | 1065 | int ret; |
1066 | 1066 | ||
1067 | WARN_ON(!lockdep_rtnl_is_held()); | 1067 | ASSERT_RTNL(); |
1068 | 1068 | ||
1069 | if (kset->base.autoneg != AUTONEG_DISABLE && | 1069 | if (kset->base.autoneg != AUTONEG_DISABLE && |
1070 | kset->base.autoneg != AUTONEG_ENABLE) | 1070 | kset->base.autoneg != AUTONEG_ENABLE) |
@@ -1165,7 +1165,7 @@ int phylink_ethtool_nway_reset(struct phylink *pl) | |||
1165 | { | 1165 | { |
1166 | int ret = 0; | 1166 | int ret = 0; |
1167 | 1167 | ||
1168 | WARN_ON(!lockdep_rtnl_is_held()); | 1168 | ASSERT_RTNL(); |
1169 | 1169 | ||
1170 | if (pl->phydev) | 1170 | if (pl->phydev) |
1171 | ret = phy_restart_aneg(pl->phydev); | 1171 | ret = phy_restart_aneg(pl->phydev); |
@@ -1183,7 +1183,7 @@ EXPORT_SYMBOL_GPL(phylink_ethtool_nway_reset); | |||
1183 | void phylink_ethtool_get_pauseparam(struct phylink *pl, | 1183 | void phylink_ethtool_get_pauseparam(struct phylink *pl, |
1184 | struct ethtool_pauseparam *pause) | 1184 | struct ethtool_pauseparam *pause) |
1185 | { | 1185 | { |
1186 | WARN_ON(!lockdep_rtnl_is_held()); | 1186 | ASSERT_RTNL(); |
1187 | 1187 | ||
1188 | pause->autoneg = !!(pl->link_config.pause & MLO_PAUSE_AN); | 1188 | pause->autoneg = !!(pl->link_config.pause & MLO_PAUSE_AN); |
1189 | pause->rx_pause = !!(pl->link_config.pause & MLO_PAUSE_RX); | 1189 | pause->rx_pause = !!(pl->link_config.pause & MLO_PAUSE_RX); |
@@ -1201,7 +1201,7 @@ int phylink_ethtool_set_pauseparam(struct phylink *pl, | |||
1201 | { | 1201 | { |
1202 | struct phylink_link_state *config = &pl->link_config; | 1202 | struct phylink_link_state *config = &pl->link_config; |
1203 | 1203 | ||
1204 | WARN_ON(!lockdep_rtnl_is_held()); | 1204 | ASSERT_RTNL(); |
1205 | 1205 | ||
1206 | if (!phylink_test(pl->supported, Pause) && | 1206 | if (!phylink_test(pl->supported, Pause) && |
1207 | !phylink_test(pl->supported, Asym_Pause)) | 1207 | !phylink_test(pl->supported, Asym_Pause)) |
@@ -1287,7 +1287,7 @@ int phylink_get_eee_err(struct phylink *pl) | |||
1287 | { | 1287 | { |
1288 | int ret = 0; | 1288 | int ret = 0; |
1289 | 1289 | ||
1290 | WARN_ON(!lockdep_rtnl_is_held()); | 1290 | ASSERT_RTNL(); |
1291 | 1291 | ||
1292 | if (pl->phydev) | 1292 | if (pl->phydev) |
1293 | ret = phy_get_eee_err(pl->phydev); | 1293 | ret = phy_get_eee_err(pl->phydev); |
@@ -1305,7 +1305,7 @@ int phylink_ethtool_get_eee(struct phylink *pl, struct ethtool_eee *eee) | |||
1305 | { | 1305 | { |
1306 | int ret = -EOPNOTSUPP; | 1306 | int ret = -EOPNOTSUPP; |
1307 | 1307 | ||
1308 | WARN_ON(!lockdep_rtnl_is_held()); | 1308 | ASSERT_RTNL(); |
1309 | 1309 | ||
1310 | if (pl->phydev) | 1310 | if (pl->phydev) |
1311 | ret = phy_ethtool_get_eee(pl->phydev, eee); | 1311 | ret = phy_ethtool_get_eee(pl->phydev, eee); |
@@ -1323,7 +1323,7 @@ int phylink_ethtool_set_eee(struct phylink *pl, struct ethtool_eee *eee) | |||
1323 | { | 1323 | { |
1324 | int ret = -EOPNOTSUPP; | 1324 | int ret = -EOPNOTSUPP; |
1325 | 1325 | ||
1326 | WARN_ON(!lockdep_rtnl_is_held()); | 1326 | ASSERT_RTNL(); |
1327 | 1327 | ||
1328 | if (pl->phydev) | 1328 | if (pl->phydev) |
1329 | ret = phy_ethtool_set_eee(pl->phydev, eee); | 1329 | ret = phy_ethtool_set_eee(pl->phydev, eee); |
@@ -1513,7 +1513,7 @@ int phylink_mii_ioctl(struct phylink *pl, struct ifreq *ifr, int cmd) | |||
1513 | struct mii_ioctl_data *mii = if_mii(ifr); | 1513 | struct mii_ioctl_data *mii = if_mii(ifr); |
1514 | int ret; | 1514 | int ret; |
1515 | 1515 | ||
1516 | WARN_ON(!lockdep_rtnl_is_held()); | 1516 | ASSERT_RTNL(); |
1517 | 1517 | ||
1518 | if (pl->phydev) { | 1518 | if (pl->phydev) { |
1519 | /* PHYs only exist for MLO_AN_PHY and SGMII */ | 1519 | /* PHYs only exist for MLO_AN_PHY and SGMII */ |
@@ -1581,7 +1581,7 @@ static int phylink_sfp_module_insert(void *upstream, | |||
1581 | port = sfp_parse_port(pl->sfp_bus, id, support); | 1581 | port = sfp_parse_port(pl->sfp_bus, id, support); |
1582 | iface = sfp_parse_interface(pl->sfp_bus, id); | 1582 | iface = sfp_parse_interface(pl->sfp_bus, id); |
1583 | 1583 | ||
1584 | WARN_ON(!lockdep_rtnl_is_held()); | 1584 | ASSERT_RTNL(); |
1585 | 1585 | ||
1586 | switch (iface) { | 1586 | switch (iface) { |
1587 | case PHY_INTERFACE_MODE_SGMII: | 1587 | case PHY_INTERFACE_MODE_SGMII: |
@@ -1650,7 +1650,7 @@ static void phylink_sfp_link_down(void *upstream) | |||
1650 | { | 1650 | { |
1651 | struct phylink *pl = upstream; | 1651 | struct phylink *pl = upstream; |
1652 | 1652 | ||
1653 | WARN_ON(!lockdep_rtnl_is_held()); | 1653 | ASSERT_RTNL(); |
1654 | 1654 | ||
1655 | set_bit(PHYLINK_DISABLE_LINK, &pl->phylink_disable_state); | 1655 | set_bit(PHYLINK_DISABLE_LINK, &pl->phylink_disable_state); |
1656 | flush_work(&pl->resolve); | 1656 | flush_work(&pl->resolve); |
@@ -1662,7 +1662,7 @@ static void phylink_sfp_link_up(void *upstream) | |||
1662 | { | 1662 | { |
1663 | struct phylink *pl = upstream; | 1663 | struct phylink *pl = upstream; |
1664 | 1664 | ||
1665 | WARN_ON(!lockdep_rtnl_is_held()); | 1665 | ASSERT_RTNL(); |
1666 | 1666 | ||
1667 | clear_bit(PHYLINK_DISABLE_LINK, &pl->phylink_disable_state); | 1667 | clear_bit(PHYLINK_DISABLE_LINK, &pl->phylink_disable_state); |
1668 | phylink_run_resolve(pl); | 1668 | phylink_run_resolve(pl); |