[PATCH V2 2/2] ath10k: Fix interrupt storm

Michal Kazior michal.kazior at tieto.com
Tue Feb 17 01:23:12 PST 2015


On 17 February 2015 at 08:43, Vasanthakumar Thiagarajan
<vthiagar at qti.qualcomm.com> wrote:
> Promiscuous mode is enabled when wlan interface is added to
> bridge. ath10k creates a monitor mode when promiscuous mode
> is enabled. When monitor vdev is runing along with other
> vdev(s) there is a huge number of interrupts generated
> especially in noisy condition. Fix this by not enabling
> promiscuous(monitor) mode when already a vdev is running.
> This does not change the support of virtual interface of
> type monitor along with other vdevs.
>
> Signed-off-by: Vasanthakumar Thiagarajan <vthiagar at qti.qualcomm.com>
> ---
>  drivers/net/wireless/ath/ath10k/mac.c |   16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
>
> diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c
> index 3b5aaa3..66cc0a8 100644
> --- a/drivers/net/wireless/ath/ath10k/mac.c
> +++ b/drivers/net/wireless/ath/ath10k/mac.c
> @@ -969,6 +969,15 @@ static int ath10k_vdev_start_restart(struct ath10k_vif *arvif, bool restart)
>         ar->num_started_vdevs++;
>         ath10k_recalc_radar_detection(ar);
>
> +       if (ar->filter_flags & FIF_PROMISC_IN_BSS) {
> +               ar->filter_flags &= ~FIF_PROMISC_IN_BSS;
> +               ath10k_dbg(ar, ATH10K_DBG_MAC,
> +                          "mac disabling promiscuous mode because vdev is started\n");
> +               ret = ath10k_monitor_recalc(ar);

The entire logic should go to ath10k_monitor_recalc().

Also I'm pretty sure this breaks 4addr station briding for main 636
fw. I can't fully test this now though (there seems to be a regression
against fw 636 and it keeps crashing with monitor vdev over and over
again).


Michał



More information about the ath10k mailing list