From: Markus Elfring <elfr...@users.sourceforge.net>
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 <elfr...@users.sourceforge.net>
---
 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

Reply via email to