Search Linux Wireless

Re: [PATCH] ath10k: dont call csa_finish more than once

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 2014-03-24 at 07:37 +0100, Michal Kazior wrote:

> > Yeah I guess. What was the reason for this though? Here it's multi-vif?
> > Before I think we were talking about races?
> 
> Before multi-vif if ieee80211_csa_finalize() failed and left
> csa_active==true driver could end up poking the csa_finalize_work()
> over and over again I guess?

I think the concern previously was about races, where finalize_work
doesn't actually get to run before the next beacon.

> For multi-vif csa using reservation there are 2 reasons:
>  a) channel switches across interfaces may not be tightly
> synchronized. I did tests where 2 long (cs_count=100) channel switches
> were a few seconds apart. In that case driver poked csa_finalize work
> quite a lot resulting in a mess.
>  b) my current approach has the following flow:
> 
> 1. reserve_chanctx()
> 2. (some time later) driver calls csa_finish, and csa_finalize calls
> use_reserved_chanctx() because reserved_chanctx is set
> 3. (possibly some time later, for multi-vif reservations) csa_finalize
> is called again but this time without reserved_chanctx, so it verifies
> if bss_conf.chandef is csa_chandef (after successful reservation it
> should be).
> 
> This means if driver would poke csa_finalize() more than once then
> use_reserved_chanctx() would be called again and again as a result.

Yeah but that seems better to catch in mac80211?

johannes

--
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




[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux