[PATCH] ath10k: fix AP/IBSS CSA with template based fw

Michal Kazior michal.kazior at tieto.com
Sun Feb 15 22:54:17 PST 2015


On 15 February 2015 at 16:51, Kalle Valo <kvalo at qca.qualcomm.com> wrote:
> Michal Kazior <michal.kazior at tieto.com> writes:
>
>> qca6174 with wmi-tlv firmware uses offloaded
>> beaconing scheme (i.e. templates). This requires a
>> little different approach when implementing CSA.
>>
>> Add missing code to update CS count and report CSA
>> completion to mac80211. Without it channel switch
>> was never finished.
>>
>> To avoid races during interface teardown data_lock
>> has been used to protect is_up and is_started so
>> they can be compared against before scheduling
>> count down work.
>>
>> Signed-off-by: Michal Kazior <michal.kazior at tieto.com>
>> ---
>>
>> @Kalle: I'm deferring the chanctx patchset v4
>> until this gets applied. I'd like to avoid posting
>> patches without a valid parent id and leaving you
>> with some weird conflicts and implicit depndencies
>> in the code to deal with.
>
> Ok.
>
> I actually had strange conflicts already with this patch (in mac.c). As
> I'm travelling, please check my resolution from the pending branch very
> carefully. I might have done something stupid.

There's a mistake. Only `arvif->is_up` should be protected by
`ar->data_lock` in ath10k_bss_assoc():

@@ -1852,7 +1901,9 @@ static void ath10k_bss_assoc(struct ieee80211_hw *hw,
                return;
        }

+       spin_lock_bh(&arvif->ar->data_lock);
        arvif->is_up = true;
+       spin_unlock_bh(&arvif->ar->data_lock);

        /* Workaround: Some firmware revisions (tested with qca6174
   (...)
 }


Michał



More information about the ath10k mailing list