From: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx> Date: Sun, 29 Oct 2017 20:36:39 +0100 Add a jump target so that a specific error message is stored only once at the end of this function implementation. Replace two calls of the macro "wl1271_warning" by goto statements. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx> --- drivers/net/wireless/ti/wlcore/main.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/net/wireless/ti/wlcore/main.c b/drivers/net/wireless/ti/wlcore/main.c index 12a9d6509382..a110f61110d5 100644 --- a/drivers/net/wireless/ti/wlcore/main.c +++ b/drivers/net/wireless/ti/wlcore/main.c @@ -1732,8 +1732,7 @@ static int wl1271_op_suspend(struct ieee80211_hw *hw, ret = wl1271_configure_suspend(wl, wlvif, wow); if (ret < 0) { mutex_unlock(&wl->mutex); - wl1271_warning("couldn't prepare device to suspend"); - return ret; + goto report_preparation_failure; } } @@ -1752,10 +1751,8 @@ static int wl1271_op_suspend(struct ieee80211_hw *hw, wl1271_ps_elp_sleep(wl); mutex_unlock(&wl->mutex); - if (ret < 0) { - wl1271_warning("couldn't prepare device to suspend"); - return ret; - } + if (ret < 0) + goto report_preparation_failure; /* flush any remaining work */ wl1271_debug(DEBUG_MAC80211, "flushing remaining works"); @@ -1783,6 +1780,10 @@ static int wl1271_op_suspend(struct ieee80211_hw *hw, cancel_delayed_work(&wl->tx_watchdog_work); return 0; + +report_preparation_failure: + wl1271_warning("couldn't prepare device to suspend"); + return ret; } static int wl1271_op_resume(struct ieee80211_hw *hw) -- 2.14.3