mac80211: Always report supported rates in scan results From: Michael Wu <flamingice@xxxxxxxxxxxx> This makes mac80211 always report supported rates in the scan results. Signed-off-by: Michael Wu <flamingice@xxxxxxxxxxxx> --- net/mac80211/ieee80211_sta.c | 38 ++++++++++++++++++++------------------ 1 files changed, 20 insertions(+), 18 deletions(-) diff --git a/net/mac80211/ieee80211_sta.c b/net/mac80211/ieee80211_sta.c index 1648c76..fc43b24 100644 --- a/net/mac80211/ieee80211_sta.c +++ b/net/mac80211/ieee80211_sta.c @@ -3013,6 +3013,25 @@ ieee80211_sta_scan_result(struct net_device *dev, bss->rsn_ie); } + if (bss && bss->supp_rates_len > 0) { + /* display all supported rates in readable format */ + char *p = current_ev + IW_EV_LCP_LEN; + int i; + + memset(&iwe, 0, sizeof(iwe)); + iwe.cmd = SIOCGIWRATE; + /* Those two flags are ignored... */ + iwe.u.bitrate.fixed = iwe.u.bitrate.disabled = 0; + + for (i = 0; i < bss->supp_rates_len; i++) { + iwe.u.bitrate.value = ((bss->supp_rates[i] & + 0x7f) * 500000); + p = iwe_stream_add_value(current_ev, p, + end_buf, &iwe, IW_EV_PARAM_LEN); + } + current_ev = p; + } + if (bss) { char *buf; buf = kmalloc(30, GFP_ATOMIC); @@ -3028,8 +3047,7 @@ ieee80211_sta_scan_result(struct net_device *dev, } do { - char *buf, *p; - int i; + char *buf; if (!(local->scan_flags & IEEE80211_SCAN_EXTRA_INFO)) break; @@ -3052,22 +3070,6 @@ ieee80211_sta_scan_result(struct net_device *dev, current_ev = iwe_stream_add_point(current_ev, end_buf, &iwe, buf); - /* dispaly all support rates in readable format */ - p = current_ev + IW_EV_LCP_LEN; - iwe.cmd = SIOCGIWRATE; - /* Those two flags are ignored... */ - iwe.u.bitrate.fixed = iwe.u.bitrate.disabled = 0; - - for (i = 0; i < bss->supp_rates_len; i++) { - iwe.u.bitrate.value = ((bss->supp_rates[i] & - 0x7f) * 500000); - p = iwe_stream_add_value(current_ev, p, - end_buf, &iwe, IW_EV_PARAM_LEN); - } - /* Check if we added any rate */ - if((p - current_ev) > IW_EV_LCP_LEN) - current_ev = p; - kfree(buf); break; } while (0);
Attachment:
pgpG68ekWwLU6.pgp
Description: PGP signature