Search Linux Wireless

Re: [PATCH] mac80211: fix radar_enabled propagation

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

 



On 8 April 2014 10:36, Johannes Berg <johannes@xxxxxxxxxxxxxxxx> wrote:
> On Fri, 2014-04-04 at 13:02 +0200, Michal Kazior wrote:
>> If chandef had non-HT width it was possible for
>> radar_enabled update to not be propagated properly
>> through drv_config(). This happened because
>> ieee80211_hw_conf_chan() would never see different
>> local->hw.conf.chandef and local->_oper_chandef.
>>
>> This wasn't a problem with HT chandefs because
>> _oper_chandef width is reset to non-HT in
>> ieee80211_free_chanctx() making
>> ieee80211_hw_conf_chan() to kick in.
>>
>> This problem led (at least) ath10k to not start
>> CAC if prior CAC was cancelled and both CACs were
>> requested for identical non-HT chandefs.
>>
>> Signed-off-by: Michal Kazior <michal.kazior@xxxxxxxxx>
>> ---
>>  net/mac80211/chan.c | 4 ++--
>>  1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/net/mac80211/chan.c b/net/mac80211/chan.c
>> index 122033d..b472daa 100644
>> --- a/net/mac80211/chan.c
>> +++ b/net/mac80211/chan.c
>> @@ -269,7 +269,7 @@ ieee80211_new_chanctx(struct ieee80211_local *local,
>>
>>       if (!local->use_chanctx) {
>>               local->_oper_chandef = *chandef;
>> -             ieee80211_hw_config(local, 0);
>> +             ieee80211_hw_config(local, IEEE80211_CONF_CHANGE_CHANNEL);
>
> I'm not convinced that this is the right way to do this - couldn't
> ieee80211_hw_conf_chan() detect the radar detection requirement change?

I agree but on the other hand propagating local->mtx locking
requirement for using local->radar_detect_enabled in
ieee80211_hw_conf_chan() (and thus ieee80211_hw_config()) is probably
going to be a cascade of pain.


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




[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