wifi: ath12k: fix the error handler of rfkill config
authorKarthikeyan Periyasamy <quic_periyasa@quicinc.com>
Wed, 22 Nov 2023 18:31:02 +0000 (20:31 +0200)
committerKalle Valo <quic_kvalo@quicinc.com>
Wed, 29 Nov 2023 11:26:19 +0000 (13:26 +0200)
When the core rfkill config throws error, it should free the
allocated resources. Currently it is not freeing the core pdev
create resources. Avoid this issue by calling the core pdev
destroy in the error handler of core rfkill config.

Found this issue in the code review and it is compile tested only.

Fixes: 004ccbc0dd49 ("wifi: ath12k: add support for hardware rfkill for WCN7850")
Signed-off-by: Karthikeyan Periyasamy <quic_periyasa@quicinc.com>
Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://lore.kernel.org/r/20231111040107.18708-1-quic_periyasa@quicinc.com
drivers/net/wireless/ath/ath12k/core.c

index b936760b51408d4fca0956c23993a05eb692ef30..6c01b282fcd330a73c8b3c9635b135e65cd4abc0 100644 (file)
@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: BSD-3-Clause-Clear
 /*
  * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved.
- * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
  */
 
 #include <linux/module.h>
@@ -698,13 +698,15 @@ int ath12k_core_qmi_firmware_ready(struct ath12k_base *ab)
        ret = ath12k_core_rfkill_config(ab);
        if (ret && ret != -EOPNOTSUPP) {
                ath12k_err(ab, "failed to config rfkill: %d\n", ret);
-               goto err_core_stop;
+               goto err_core_pdev_destroy;
        }
 
        mutex_unlock(&ab->core_lock);
 
        return 0;
 
+err_core_pdev_destroy:
+       ath12k_core_pdev_destroy(ab);
 err_core_stop:
        ath12k_core_stop(ab);
        ath12k_mac_destroy(ab);