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: Prameela Rani Garnepudi <prameela.j04cs@gmail.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
parent
87016f5eb1
commit
b022539db4
|
@ -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)
|
||||||
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);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue