Dan Williams wrote: > Bring scan result handling more in line with drivers like ipw. Scan > results are aggregated and a BSS dropped after 15 seconds if no beacon > is received. This allows the driver to interact better with userspace > where more than one process may request scans or results at any time. I've only seen this recently, and am using it as a basis for some other changes. However I've noticed a couple issues: > +static int orinoco_process_scan_results(struct net_device *dev, > + unsigned char *buf, > + int len) > +{ <snip> > + /* Try to update an existing bss first */ > + list_for_each_entry(bss, &priv->bss_list, list) { > + if (compare_ether_addr(bss->bss.a.bssid, atom->a.bssid)) if (!compare_ether_addr(bss->bss.a.bssid, atom->a.bssid)) So that we proceed to the next bss when ether_addr doesn't match. Otherwise this loop never matches. > + continue; > + if (le16_to_cpu(bss->bss.a.essid_len) != > + le16_to_cpu(atom->a.essid_len)) > + continue; > + if (memcmp(bss->bss.a.essid, atom->a.essid, > + le16_to_cpu(atom->a.essid_len))) > + continue; memcpy(&bss->bss, atom, sizeof(bss->bss); So we actually update the scan results when we find an older set. HTH, Dave. PS. I couldn't figure how I could get a copy of this message to reply to, so this is going through gmane. Apologies if this confuses things, or doesn't come out right. - 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