On 15 February 2015 at 16:51, Kalle Valo <kvalo@xxxxxxxxxxxxxxxx> wrote: > Michal Kazior <michal.kazior@xxxxxxxxx> 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@xxxxxxxxx> >> --- >> >> @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ł -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html