Commit b022539d authored by Prameela Rani Garnepudi's avatar Prameela Rani Garnepudi Committed by Kalle Valo

rsi: Fix memory leak in module unload

Observed crash when module is unloaded if CONFIG_RSI_DEBUGSFS is not set.
	Fix: Debugfs entry removal moved inside CONFIG_RSI_DEBUGSFS flag in
             function rsi_mac80211_detach()
Memory leak found and fixed for below structures in function rsi_mac80211_detach()
	* channel list for each supported band
	* rsi debugfs info
Signed-off-by: default avatarPrameela Rani Garnepudi <prameela.j04cs@gmail.com>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent 87016f5e
...@@ -194,6 +194,7 @@ static void rsi_register_rates_channels(struct rsi_hw *adapter, int band) ...@@ -194,6 +194,7 @@ static void rsi_register_rates_channels(struct rsi_hw *adapter, int band)
void rsi_mac80211_detach(struct rsi_hw *adapter) void rsi_mac80211_detach(struct rsi_hw *adapter)
{ {
struct ieee80211_hw *hw = adapter->hw; struct ieee80211_hw *hw = adapter->hw;
enum nl80211_band band;
if (hw) { if (hw) {
ieee80211_stop_queues(hw); ieee80211_stop_queues(hw);
...@@ -201,7 +202,17 @@ void rsi_mac80211_detach(struct rsi_hw *adapter) ...@@ -201,7 +202,17 @@ void rsi_mac80211_detach(struct rsi_hw *adapter)
ieee80211_free_hw(hw); ieee80211_free_hw(hw);
} }
for (band = 0; band < NUM_NL80211_BANDS; band++) {
struct ieee80211_supported_band *sband =
&adapter->sbands[band];
kfree(sband->channels);
}
#ifdef CONFIG_RSI_DEBUGFS
rsi_remove_dbgfs(adapter); rsi_remove_dbgfs(adapter);
kfree(adapter->dfsentry);
#endif
} }
EXPORT_SYMBOL_GPL(rsi_mac80211_detach); EXPORT_SYMBOL_GPL(rsi_mac80211_detach);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment