Commit 73c105ad authored by Sergey Shtylyov's avatar Sergey Shtylyov Committed by David S. Miller

phy: make phy_set_max_speed() *void*

After following the call tree of phy_set_max_speed(), it became clear
that this function never returns anything but 0, so we can change its
result type to *void* and drop the result checks from the three drivers
that actually bothered to do it...

Found by Linux Verification Center (linuxtesting.org) with the SVACE static
analysis tool.
Signed-off-by: default avatarSergey Shtylyov <s.shtylyov@omp.ru>
Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent fe893027
...@@ -1432,11 +1432,7 @@ static int ravb_phy_init(struct net_device *ndev) ...@@ -1432,11 +1432,7 @@ static int ravb_phy_init(struct net_device *ndev)
* at this time. * at this time.
*/ */
if (soc_device_match(r8a7795es10)) { if (soc_device_match(r8a7795es10)) {
err = phy_set_max_speed(phydev, SPEED_100); phy_set_max_speed(phydev, SPEED_100);
if (err) {
netdev_err(ndev, "failed to limit PHY to 100Mbit/s\n");
goto err_phy_disconnect;
}
netdev_info(ndev, "limited PHY to 100Mbit/s\n"); netdev_info(ndev, "limited PHY to 100Mbit/s\n");
} }
...@@ -1457,8 +1453,6 @@ static int ravb_phy_init(struct net_device *ndev) ...@@ -1457,8 +1453,6 @@ static int ravb_phy_init(struct net_device *ndev)
return 0; return 0;
err_phy_disconnect:
phy_disconnect(phydev);
err_deregister_fixed_link: err_deregister_fixed_link:
if (of_phy_is_fixed_link(np)) if (of_phy_is_fixed_link(np))
of_phy_deregister_fixed_link(np); of_phy_deregister_fixed_link(np);
......
...@@ -2026,14 +2026,8 @@ static int sh_eth_phy_init(struct net_device *ndev) ...@@ -2026,14 +2026,8 @@ static int sh_eth_phy_init(struct net_device *ndev)
} }
/* mask with MAC supported features */ /* mask with MAC supported features */
if (mdp->cd->register_type != SH_ETH_REG_GIGABIT) { if (mdp->cd->register_type != SH_ETH_REG_GIGABIT)
int err = phy_set_max_speed(phydev, SPEED_100); phy_set_max_speed(phydev, SPEED_100);
if (err) {
netdev_err(ndev, "failed to limit PHY to 100 Mbit/s\n");
phy_disconnect(phydev);
return err;
}
}
phy_attached_info(phydev); phy_attached_info(phydev);
......
...@@ -533,9 +533,7 @@ static int aqcs109_config_init(struct phy_device *phydev) ...@@ -533,9 +533,7 @@ static int aqcs109_config_init(struct phy_device *phydev)
* PMA speed ability bits are the same for all members of the family, * PMA speed ability bits are the same for all members of the family,
* AQCS109 however supports speeds up to 2.5G only. * AQCS109 however supports speeds up to 2.5G only.
*/ */
ret = phy_set_max_speed(phydev, SPEED_2500); phy_set_max_speed(phydev, SPEED_2500);
if (ret)
return ret;
return aqr107_set_downshift(phydev, MDIO_AN_VEND_PROV_DOWNSHIFT_DFLT); return aqr107_set_downshift(phydev, MDIO_AN_VEND_PROV_DOWNSHIFT_DFLT);
} }
......
...@@ -243,7 +243,7 @@ size_t phy_speeds(unsigned int *speeds, size_t size, ...@@ -243,7 +243,7 @@ size_t phy_speeds(unsigned int *speeds, size_t size,
return count; return count;
} }
static int __set_linkmode_max_speed(u32 max_speed, unsigned long *addr) static void __set_linkmode_max_speed(u32 max_speed, unsigned long *addr)
{ {
const struct phy_setting *p; const struct phy_setting *p;
int i; int i;
...@@ -254,13 +254,11 @@ static int __set_linkmode_max_speed(u32 max_speed, unsigned long *addr) ...@@ -254,13 +254,11 @@ static int __set_linkmode_max_speed(u32 max_speed, unsigned long *addr)
else else
break; break;
} }
return 0;
} }
static int __set_phy_supported(struct phy_device *phydev, u32 max_speed) static void __set_phy_supported(struct phy_device *phydev, u32 max_speed)
{ {
return __set_linkmode_max_speed(max_speed, phydev->supported); __set_linkmode_max_speed(max_speed, phydev->supported);
} }
/** /**
...@@ -273,17 +271,11 @@ static int __set_phy_supported(struct phy_device *phydev, u32 max_speed) ...@@ -273,17 +271,11 @@ static int __set_phy_supported(struct phy_device *phydev, u32 max_speed)
* is connected to a 1G PHY. This function allows the MAC to indicate its * is connected to a 1G PHY. This function allows the MAC to indicate its
* maximum speed, and so limit what the PHY will advertise. * maximum speed, and so limit what the PHY will advertise.
*/ */
int phy_set_max_speed(struct phy_device *phydev, u32 max_speed) void phy_set_max_speed(struct phy_device *phydev, u32 max_speed)
{ {
int err; __set_phy_supported(phydev, max_speed);
err = __set_phy_supported(phydev, max_speed);
if (err)
return err;
phy_advertise_supported(phydev); phy_advertise_supported(phydev);
return 0;
} }
EXPORT_SYMBOL(phy_set_max_speed); EXPORT_SYMBOL(phy_set_max_speed);
...@@ -440,7 +432,9 @@ int phy_speed_down_core(struct phy_device *phydev) ...@@ -440,7 +432,9 @@ int phy_speed_down_core(struct phy_device *phydev)
if (min_common_speed == SPEED_UNKNOWN) if (min_common_speed == SPEED_UNKNOWN)
return -EINVAL; return -EINVAL;
return __set_linkmode_max_speed(min_common_speed, phydev->advertising); __set_linkmode_max_speed(min_common_speed, phydev->advertising);
return 0;
} }
static void mmd_phy_indirect(struct mii_bus *bus, int phy_addr, int devad, static void mmd_phy_indirect(struct mii_bus *bus, int phy_addr, int devad,
......
...@@ -1661,7 +1661,7 @@ int phy_disable_interrupts(struct phy_device *phydev); ...@@ -1661,7 +1661,7 @@ int phy_disable_interrupts(struct phy_device *phydev);
void phy_request_interrupt(struct phy_device *phydev); void phy_request_interrupt(struct phy_device *phydev);
void phy_free_interrupt(struct phy_device *phydev); void phy_free_interrupt(struct phy_device *phydev);
void phy_print_status(struct phy_device *phydev); void phy_print_status(struct phy_device *phydev);
int phy_set_max_speed(struct phy_device *phydev, u32 max_speed); void phy_set_max_speed(struct phy_device *phydev, u32 max_speed);
void phy_remove_link_mode(struct phy_device *phydev, u32 link_mode); void phy_remove_link_mode(struct phy_device *phydev, u32 link_mode);
void phy_advertise_supported(struct phy_device *phydev); void phy_advertise_supported(struct phy_device *phydev);
void phy_support_sym_pause(struct phy_device *phydev); void phy_support_sym_pause(struct phy_device *phydev);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment