mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-07-21 04:46:58 +08:00
44 lines
1.5 KiB
Diff
44 lines
1.5 KiB
Diff
From 9f4ecacf2fa47b8aadd9bca2e88cde01856de028 Mon Sep 17 00:00:00 2001
|
|
From: Aditya Kumar Singh <quic_adisi@quicinc.com>
|
|
Date: Mon, 10 Jan 2022 16:24:14 +0200
|
|
Subject: [PATCH] ath11k: fix workqueue not getting destroyed after rmmod
|
|
|
|
Currently, ath11k_core_alloc() creates a single thread workqueue.
|
|
This workqueue is not detroyed during clean up when ath11k modules
|
|
are unloaded from the kernel and is left as it is.
|
|
If workqueue is not destroyed, it could lead to kernel
|
|
memory scarcity in a longer run. This could affect self and
|
|
other drivers workability as well.
|
|
|
|
Add destroy workqueue in ath11k_core_free().
|
|
|
|
Tested on: IPQ8074 WLAN.HK.2.4.0.1-01746-QCAHKSWPL_SILICONZ-1
|
|
|
|
Signed-off-by: Aditya Kumar Singh <quic_adisi@quicinc.com>
|
|
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
|
|
Link: https://lore.kernel.org/r/1640231787-17408-1-git-send-email-quic_adisi@quicinc.com
|
|
---
|
|
drivers/net/wireless/ath/ath11k/core.c | 4 ++++
|
|
1 file changed, 4 insertions(+)
|
|
|
|
--- a/drivers/net/wireless/ath/ath11k/core.c
|
|
+++ b/drivers/net/wireless/ath/ath11k/core.c
|
|
@@ -1,6 +1,7 @@
|
|
// SPDX-License-Identifier: BSD-3-Clause-Clear
|
|
/*
|
|
* Copyright (c) 2018-2019 The Linux Foundation. All rights reserved.
|
|
+ * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
|
|
*/
|
|
|
|
#include <linux/module.h>
|
|
@@ -1404,6 +1405,9 @@ EXPORT_SYMBOL(ath11k_core_deinit);
|
|
|
|
void ath11k_core_free(struct ath11k_base *ab)
|
|
{
|
|
+ flush_workqueue(ab->workqueue);
|
|
+ destroy_workqueue(ab->workqueue);
|
|
+
|
|
kfree(ab);
|
|
}
|
|
EXPORT_SYMBOL(ath11k_core_free);
|