rtw88: Fix return value of rtw_wow_check_fw_status
authorChin-Yen Lee <timlee@realtek.com>
Mon, 3 Feb 2020 06:01:57 +0000 (14:01 +0800)
committerKalle Valo <kvalo@codeaurora.org>
Mon, 3 Feb 2020 18:10:31 +0000 (20:10 +0200)
Clang warns that ret is used uninitialzed.
And we found that actually the return type should be "int" instead
of "bool".

Fixes: 44bc17f7f5b3 ("rtw88: support wowlan feature for 8822c")
Link: https://github.com/ClangBuiltLinux/linux/issues/850
Reported-by: Nathan Chancellor <natechancellor@gmail.com>
Signed-off-by: Chin-Yen Lee <timlee@realtek.com>
Signed-off-by: Yan-Hsuan Chuang <yhchuang@realtek.com>
Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
Tested-by: Nathan Chancellor <natechancellor@gmail.com> # build
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/realtek/rtw88/wow.c

index af5c27e1bb07b368cc94a6a17f4845316f9b8bcf..4820dca958dd3d3316d754b6abbc98c6335d8d9b 100644 (file)
@@ -281,27 +281,26 @@ static void rtw_wow_rx_dma_start(struct rtw_dev *rtwdev)
        rtw_write32_clr(rtwdev, REG_RXPKT_NUM, BIT_RW_RELEASE);
 }
 
-static bool rtw_wow_check_fw_status(struct rtw_dev *rtwdev, bool wow_enable)
+static int rtw_wow_check_fw_status(struct rtw_dev *rtwdev, bool wow_enable)
 {
-       bool ret;
-
        /* wait 100ms for wow firmware to finish work */
        msleep(100);
 
        if (wow_enable) {
-               if (!rtw_read8(rtwdev, REG_WOWLAN_WAKE_REASON))
-                       ret = 0;
+               if (rtw_read8(rtwdev, REG_WOWLAN_WAKE_REASON))
+                       goto wow_fail;
        } else {
-               if (rtw_read32_mask(rtwdev, REG_FE1IMR, BIT_FS_RXDONE) == 0 &&
-                   rtw_read32_mask(rtwdev, REG_RXPKT_NUM, BIT_RW_RELEASE) == 0)
-                       ret = 0;
+               if (rtw_read32_mask(rtwdev, REG_FE1IMR, BIT_FS_RXDONE) ||
+                   rtw_read32_mask(rtwdev, REG_RXPKT_NUM, BIT_RW_RELEASE))
+                       goto wow_fail;
        }
 
-       if (ret)
-               rtw_err(rtwdev, "failed to check wow status %s\n",
-                       wow_enable ? "enabled" : "disabled");
+       return 0;
 
-       return ret;
+wow_fail:
+       rtw_err(rtwdev, "failed to check wow status %s\n",
+               wow_enable ? "enabled" : "disabled");
+       return -EBUSY;
 }
 
 static void rtw_wow_fw_security_type_iter(struct ieee80211_hw *hw,