[PATCH -next] ath11k: Add checked value for ath11k_ahb_remove

Bo YU tsu.yubo at gmail.com
Sun Jun 21 05:51:40 EDT 2020


Return value form wait_for_completion_timeout should to be checked.

This is detected by Coverity,#CID:1464479 (CHECKED_RETURN)

FIXES: d5c65159f2895(ath11k: driver for Qualcomm IEEE 802.11ax devices)
Signed-off-by: Bo YU <tsu.yubo at gmail.com>
---
 drivers/net/wireless/ath/ath11k/ahb.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/drivers/net/wireless/ath/ath11k/ahb.c b/drivers/net/wireless/ath/ath11k/ahb.c
index 30092841ac46..1bbe30dceaf9 100644
--- a/drivers/net/wireless/ath/ath11k/ahb.c
+++ b/drivers/net/wireless/ath/ath11k/ahb.c
@@ -981,12 +981,16 @@ static int ath11k_ahb_probe(struct platform_device *pdev)
 static int ath11k_ahb_remove(struct platform_device *pdev)
 {
 	struct ath11k_base *ab = platform_get_drvdata(pdev);
-
+	int ret = 0;
 	reinit_completion(&ab->driver_recovery);

 	if (test_bit(ATH11K_FLAG_RECOVERY, &ab->dev_flags))
-		wait_for_completion_timeout(&ab->driver_recovery,
-					    ATH11K_AHB_RECOVERY_TIMEOUT);
+		if (!wait_for_completion_timeout(&ab->driver_recovery,
+						 ATH11K_AHB_RECOVERY_TIMEOUT)) {
+			ath11k_warn(ab, "fail to receive recovery response completion.\n");
+			ret = -ETIMEDOUT;
+		}
+

 	set_bit(ATH11K_FLAG_UNREGISTERING, &ab->dev_flags);
 	cancel_work_sync(&ab->restart_work);
@@ -999,7 +1003,7 @@ static int ath11k_ahb_remove(struct platform_device *pdev)
 	ath11k_core_free(ab);
 	platform_set_drvdata(pdev, NULL);

-	return 0;
+	return ret;
 }

 static struct platform_driver ath11k_ahb_driver = {
--
2.11.0




More information about the ath11k mailing list