Search Linux Wireless

Re: [PATCH] wifi: mac80211: handle sdata->u.ap.active flag with MLO

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

 



On Tue, 2024-03-26 at 20:41 +0530, Aditya Kumar Singh wrote:

> @@ -1232,7 +1256,9 @@ ieee80211_assign_beacon(struct ieee80211_sub_if_data *sdata,
>  	}
>  
>  	rcu_assign_pointer(link->u.ap.beacon, new);
> -	sdata->u.ap.active = true;
> +
> +	if (ieee80211_num_beaconing_links(sdata) <= 1)
> +		sdata->u.ap.active = true;

I don't understand this change. Neither the <= 1 really, nor the fact
that you actually _make_ this change.

> @@ -1486,7 +1488,10 @@ static int ieee80211_start_ap(struct wiphy *wiphy, struct net_device *dev,
>  		if (old)
>  			kfree_rcu(old, rcu_head);
>  		RCU_INIT_POINTER(link->u.ap.beacon, NULL);
> -		sdata->u.ap.active = false;
> +
> +		if (!ieee80211_num_beaconing_links(sdata))
> +			sdata->u.ap.active = false;

== 0 maybe?

Or maybe we should just save/restore the value instead?

>  	list_for_each_entry(vlan, &sdata->u.ap.vlans, u.vlan.list)
>  		netif_carrier_off(vlan->dev);
>  
> -	if (ieee80211_num_beaconing_links(sdata) <= 1)

Unrelated, but it looks like the VLAN netif_carrier_off() handling above
is also wrong and should really go into this if block as well.

johannes





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

  Powered by Linux