[PATCH] ath10k: refactor monitor code
Kalle Valo
kvalo at qca.qualcomm.com
Tue Apr 8 02:53:10 EDT 2014
Kalle Valo <kvalo at qca.qualcomm.com> writes:
> Michal Kazior <michal.kazior at tieto.com> writes:
>
>> It was possible to create/delete/start/stop
>> monitor vdev from a few places that were not
>> exclusively protected against each other. This
>> resulted in monitor vdev being stopped/removed by
>> one call origin while another one was expecting it
>> to continue running.
>>
>> For example if CAC was started and interface's
>> promiscuous mode was toggled monitor vdev was
>> removed from the driver meaning no radar would be
>> detected. In additional a warning would be printed
>> upon CAC completion complaining it tried to stop
>> non-running monitor vdev.
>>
>> The patch simplifies monitor code by removing
>> IEEE80211_HW_WANT_MONITOR_VIF (which wasn't really
>> ever needed) and improves state tracking. It also
>> unifies prints.
>>
>> Signed-off-by: Michal Kazior <michal.kazior at tieto.com>
>
> Thanks, applied.
Actually there were two checkpatch warnings which I had missed:
drivers/net/wireless/ath/ath10k/mac.c:2587: WARNING: line over 80 characters
drivers/net/wireless/ath/ath10k/mac.c:2852: WARNING: line over 80 characters
I amended it like this:
--- a/drivers/net/wireless/ath/ath10k/mac.c
+++ b/drivers/net/wireless/ath/ath10k/mac.c
@@ -2584,7 +2584,8 @@ static int ath10k_config(struct ieee80211_hw *hw, u32 changed)
ar->monitor = true;
ret = ath10k_monitor_start(ar);
if (ret) {
- ath10k_warn("failed to start monitor (config): %d\n", ret);
+ ath10k_warn("failed to start monitor (config): %d\n",
+ ret);
ar->monitor = false;
}
} else if (!(conf->flags & IEEE80211_CONF_MONITOR) &&
@@ -2849,7 +2850,8 @@ static void ath10k_configure_filter(struct ieee80211_hw *hw,
ar->promisc = true;
ret = ath10k_monitor_start(ar);
if (ret) {
- ath10k_warn("failed to start monitor (promisc): %d\n", ret);
+ ath10k_warn("failed to start monitor (promisc): %d\n",
+ ret);
ar->promisc = false;
}
} else if (!(ar->filter_flags & FIF_PROMISC_IN_BSS) && ar->promisc) {
--
Kalle Valo
More information about the ath10k
mailing list