Message ID | 4e7e11f8-03b5-4289-9475-d3b4e105d40a@ancud.ru (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | tg3: Remove residual error handling in tg3_suspend | expand |
Context | Check | Description |
---|---|---|
netdev/tree_selection | success | Guessing tree name failed - patch did not apply |
On Thu, Mar 7, 2024 at 11:23 AM Nikita Kiryushin <kiryushin@ancud.ru> wrote: > > > As of now, tg3_power_down_prepare always ends with success, but > the error handling code from former tg3_set_power_state call is still here. > > Remove (now unreachable) code for simplification. > > Found by Linux Verification Center (linuxtesting.org) with SVACE. > > Fixes: c866b7eac073 ("tg3: Do not use legacy PCI power management") > Signed-off-by: Nikita Kiryushin <kiryushin@ancud.ru> The patch looks good to me. But I think we can go one step further and change tg3_power_down_prepare() to a void function. Thanks.
diff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c index 04964bbe08cf..400451e10f77 100644 --- a/drivers/net/ethernet/broadcom/tg3.c +++ b/drivers/net/ethernet/broadcom/tg3.c @@ -18090,7 +18090,6 @@ static int tg3_suspend(struct device *device) { struct net_device *dev = dev_get_drvdata(device); struct tg3 *tp = netdev_priv(dev); - int err = 0; rtnl_lock(); @@ -18114,32 +18113,11 @@ static int tg3_suspend(struct device *device) tg3_flag_clear(tp, INIT_COMPLETE);
As of now, tg3_power_down_prepare always ends with success, but the error handling code from former tg3_set_power_state call is still here. Remove (now unreachable) code for simplification. Found by Linux Verification Center (linuxtesting.org) with SVACE. Fixes: c866b7eac073 ("tg3: Do not use legacy PCI power management") Signed-off-by: Nikita Kiryushin <kiryushin@ancud.ru> --- drivers/net/ethernet/broadcom/tg3.c | 26 ++------------------------ 1 file changed, 2 insertions(+), 24 deletions(-) tg3_full_unlock(tp); - err = tg3_power_down_prepare(tp); - if (err) { - int err2; - - tg3_full_lock(tp, 0); - - tg3_flag_set(tp, INIT_COMPLETE); - err2 = tg3_restart_hw(tp, true); - if (err2) - goto out; - - tg3_timer_start(tp); - - netif_device_attach(dev); - tg3_netif_start(tp); - -out: - tg3_full_unlock(tp); - - if (!err2) - tg3_phy_start(tp); - } + tg3_power_down_prepare(tp); unlock: rtnl_unlock(); - return err; + return 0; } static int tg3_resume(struct device *device)