Search Linux Wireless

Re: [RFC v2] cfg80211: Indicate MLO connection info in connect and roam callbacks

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

 




On 6/8/2022 1:29 PM, Johannes Berg wrote:
On Wed, 2022-06-08 at 13:15 +0530, Veerendranath Jakkam wrote:
On 6/8/2022 1:01 PM, Johannes Berg wrote:
On Mon, 2022-06-06 at 23:01 +0530, Veerendranath Jakkam wrote:

+	if (cr->status == WLAN_STATUS_SUCCESS) {
+		for_each_valid_link(cr, link) {
+			if (!cr->links[link].bss)
+				break;
+		}
+
+		WARN_ON_ONCE((!cr->valid_links && link != 1) ||
+			     (cr->valid_links &&
+			      link != ARRAY_SIZE(wdev->links)));
+
I will say I'm not super happy with using the link variable after the
loop, that always feels a bit magic to me, especially if the loop is
hidden like that...

But I guess I don't see a lot of alternatives here, other than open-
coding it, or keeping track of "how many BSSes do I have".

Since we need to WARN even if single BSS is not present I think we can
use "bss_not_found" flag?

Actually, for the MLO case, is this even valid? link[14] could be set,
so you wouldn't break, ending up with link==15? Or am I confused?
In MLO case the link value will be always 15 after loop completes if
bsses are available for all valid links since the check is only for the
valid links

so, In above case also when "link==15" the condition fails and WARN will
be skipped right.

Ah, indeed. I was thinking of the 'break', but you only get there for
valid links and the valid links should indeed have a .bss pointer.

OK, so I guess let's leave it as is, that way we check both cases
accurately.

johannes


Now I am thinking we can simply do like this. Sorry,  somehow I made it complex earlier.. :)

+	if (cr->status == WLAN_STATUS_SUCCESS) {
+		for_each_valid_link(cr, link) {
+			if (WARN_ON_ONCE(!cr->links[link].bss))
+				break;
+		}




[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