Hi Eliad, >> + if (!ie1 && !ie2) >> + return 0; >> + if (!ie1 || !ie2) >> + return -1; >> + ielen = min(ie1[1], ie2[1]); >> + for (i = 0; i < ielen; ++i) >> + if (ie2[i + 2]) >> + return -1; >> + return ie2[1] - ie1[1]; > > you don't account for the ssid = "" case. > Yes, true. And also incorrectly handle !ie2 case. I'll fix it. >> +static int >> +merge_hidden_ies(struct cfg80211_internal_bss *res, [...] > > i think the "merge" here is a bit misleading - there is no actual merge. > you copy the beacon_ies from the beacon, but we still end up with 2 bss nodes. > your solution does workaround the specific psm problem, but we still > end up with a duplicate bss conf node that will never get updated > (because the beacons will update the "original" bss node). > Yes, correct. I'm addressing only the obvious PSM problem now. Further implementation is a subject of a discussion. > i guess this problem already exists with the current code. > not sure what is the correct way solve it, though. > maybe check for both the hidden name and the actual name? > The whole idea of multi-ssid list of bss'es is a bit unclear for me. That is the benefit of having ssid ie as a part of the key in the tree? Are there multi-ssid APs which broadcasts different ies (apart form ssid) on the same bssid in real live? If not, I'm thinking about a separate refcounted list of bss ies keeping all bss information except ssid. But it is a quite big change, definitely not for this commit. Thank you and with best regards, Dmitry -- 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