[PATCH] wifi: mac80211: fix assigning channel in activate links

Johannes Berg johannes at sipsolutions.net
Tue Oct 1 01:08:02 PDT 2024


On Tue, 2024-10-01 at 13:07 +0530, Aditya Kumar Singh wrote:
> 
> First iterate and do only _ieee80211_link_use_channel() this part. Then 
> let the flow as usual and after stations are added, do the 
> link_info_changed() part.

That would seem to make sense, it also matches assoc flow better.
Although not sure that matters too much, since this is necessarily very
different as it's while associated anyway.

> > But also this seems to break out driver for other reasons, because it

type - I meant "our driver"

> > initializes rate control somewhere here and needs a station for that.
> > Didn't look deeply into that yet though.
> 
> Okay so doing as I said above could work -
> 
> if (add) {
> 	...
> }
> 
> for_each_set_bit(link_id, &rem, ..) {
> 	...
> }
> 
> for_each_set_bit(link_id, &add ...) {
> 	_ieee80211_link_use_channel()
> }
> 
> list_for_each_entry(sta, &local->sta_list, list) {
> 	...
> }
> 
> ...
> 
> for_each_set_bit(link_id, &add ....) {
> 	now call
> 	ieee80211_mgd_set_link_qos_params()
> 	ieee80211_link_info_change_notify()
> }
> 
> ...
> 
> 
> At least I tried both of these ways in hwsim. I dont see any failures. 
> Hence I thought why not move whole for loop to top instead.

Right, I don't know - I guess I should try with our driver?

johannes



More information about the ath12k mailing list