diff options
author | David S. Miller <davem@davemloft.net> | 2008-08-30 02:06:00 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-08-30 02:06:00 -0400 |
commit | b171e19ed08c8ba832e5325fadf1be493f56665d (patch) | |
tree | 017208f9fcc4ef2cc3fe5cc3f262d2455eda9f61 /net/mac80211 | |
parent | 143b11c03cd42f2284efe5128afc057d8fc86c78 (diff) | |
parent | 7c19a3d280297d43ef5ff7c6b205dc208a16d3d1 (diff) |
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts:
net/mac80211/mlme.c
Diffstat (limited to 'net/mac80211')
-rw-r--r-- | net/mac80211/debugfs_netdev.c | 24 | ||||
-rw-r--r-- | net/mac80211/ieee80211_i.h | 6 | ||||
-rw-r--r-- | net/mac80211/mesh.c | 2 | ||||
-rw-r--r-- | net/mac80211/mlme.c | 52 |
4 files changed, 30 insertions, 54 deletions
diff --git a/net/mac80211/debugfs_netdev.c b/net/mac80211/debugfs_netdev.c index 475f89a8aee..8165df578c9 100644 --- a/net/mac80211/debugfs_netdev.c +++ b/net/mac80211/debugfs_netdev.c | |||
@@ -248,8 +248,8 @@ IEEE80211_IF_WFILE(min_discovery_timeout, | |||
248 | static void add_sta_files(struct ieee80211_sub_if_data *sdata) | 248 | static void add_sta_files(struct ieee80211_sub_if_data *sdata) |
249 | { | 249 | { |
250 | DEBUGFS_ADD(drop_unencrypted, sta); | 250 | DEBUGFS_ADD(drop_unencrypted, sta); |
251 | DEBUGFS_ADD(force_unicast_rateidx, ap); | 251 | DEBUGFS_ADD(force_unicast_rateidx, sta); |
252 | DEBUGFS_ADD(max_ratectrl_rateidx, ap); | 252 | DEBUGFS_ADD(max_ratectrl_rateidx, sta); |
253 | 253 | ||
254 | DEBUGFS_ADD(state, sta); | 254 | DEBUGFS_ADD(state, sta); |
255 | DEBUGFS_ADD(bssid, sta); | 255 | DEBUGFS_ADD(bssid, sta); |
@@ -283,8 +283,8 @@ static void add_ap_files(struct ieee80211_sub_if_data *sdata) | |||
283 | static void add_wds_files(struct ieee80211_sub_if_data *sdata) | 283 | static void add_wds_files(struct ieee80211_sub_if_data *sdata) |
284 | { | 284 | { |
285 | DEBUGFS_ADD(drop_unencrypted, wds); | 285 | DEBUGFS_ADD(drop_unencrypted, wds); |
286 | DEBUGFS_ADD(force_unicast_rateidx, ap); | 286 | DEBUGFS_ADD(force_unicast_rateidx, wds); |
287 | DEBUGFS_ADD(max_ratectrl_rateidx, ap); | 287 | DEBUGFS_ADD(max_ratectrl_rateidx, wds); |
288 | 288 | ||
289 | DEBUGFS_ADD(peer, wds); | 289 | DEBUGFS_ADD(peer, wds); |
290 | } | 290 | } |
@@ -292,8 +292,8 @@ static void add_wds_files(struct ieee80211_sub_if_data *sdata) | |||
292 | static void add_vlan_files(struct ieee80211_sub_if_data *sdata) | 292 | static void add_vlan_files(struct ieee80211_sub_if_data *sdata) |
293 | { | 293 | { |
294 | DEBUGFS_ADD(drop_unencrypted, vlan); | 294 | DEBUGFS_ADD(drop_unencrypted, vlan); |
295 | DEBUGFS_ADD(force_unicast_rateidx, ap); | 295 | DEBUGFS_ADD(force_unicast_rateidx, vlan); |
296 | DEBUGFS_ADD(max_ratectrl_rateidx, ap); | 296 | DEBUGFS_ADD(max_ratectrl_rateidx, vlan); |
297 | } | 297 | } |
298 | 298 | ||
299 | static void add_monitor_files(struct ieee80211_sub_if_data *sdata) | 299 | static void add_monitor_files(struct ieee80211_sub_if_data *sdata) |
@@ -381,8 +381,8 @@ static void add_files(struct ieee80211_sub_if_data *sdata) | |||
381 | static void del_sta_files(struct ieee80211_sub_if_data *sdata) | 381 | static void del_sta_files(struct ieee80211_sub_if_data *sdata) |
382 | { | 382 | { |
383 | DEBUGFS_DEL(drop_unencrypted, sta); | 383 | DEBUGFS_DEL(drop_unencrypted, sta); |
384 | DEBUGFS_DEL(force_unicast_rateidx, ap); | 384 | DEBUGFS_DEL(force_unicast_rateidx, sta); |
385 | DEBUGFS_DEL(max_ratectrl_rateidx, ap); | 385 | DEBUGFS_DEL(max_ratectrl_rateidx, sta); |
386 | 386 | ||
387 | DEBUGFS_DEL(state, sta); | 387 | DEBUGFS_DEL(state, sta); |
388 | DEBUGFS_DEL(bssid, sta); | 388 | DEBUGFS_DEL(bssid, sta); |
@@ -416,8 +416,8 @@ static void del_ap_files(struct ieee80211_sub_if_data *sdata) | |||
416 | static void del_wds_files(struct ieee80211_sub_if_data *sdata) | 416 | static void del_wds_files(struct ieee80211_sub_if_data *sdata) |
417 | { | 417 | { |
418 | DEBUGFS_DEL(drop_unencrypted, wds); | 418 | DEBUGFS_DEL(drop_unencrypted, wds); |
419 | DEBUGFS_DEL(force_unicast_rateidx, ap); | 419 | DEBUGFS_DEL(force_unicast_rateidx, wds); |
420 | DEBUGFS_DEL(max_ratectrl_rateidx, ap); | 420 | DEBUGFS_DEL(max_ratectrl_rateidx, wds); |
421 | 421 | ||
422 | DEBUGFS_DEL(peer, wds); | 422 | DEBUGFS_DEL(peer, wds); |
423 | } | 423 | } |
@@ -425,8 +425,8 @@ static void del_wds_files(struct ieee80211_sub_if_data *sdata) | |||
425 | static void del_vlan_files(struct ieee80211_sub_if_data *sdata) | 425 | static void del_vlan_files(struct ieee80211_sub_if_data *sdata) |
426 | { | 426 | { |
427 | DEBUGFS_DEL(drop_unencrypted, vlan); | 427 | DEBUGFS_DEL(drop_unencrypted, vlan); |
428 | DEBUGFS_DEL(force_unicast_rateidx, ap); | 428 | DEBUGFS_DEL(force_unicast_rateidx, vlan); |
429 | DEBUGFS_DEL(max_ratectrl_rateidx, ap); | 429 | DEBUGFS_DEL(max_ratectrl_rateidx, vlan); |
430 | } | 430 | } |
431 | 431 | ||
432 | static void del_monitor_files(struct ieee80211_sub_if_data *sdata) | 432 | static void del_monitor_files(struct ieee80211_sub_if_data *sdata) |
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h index 2bb546744b9..570ae83c71b 100644 --- a/net/mac80211/ieee80211_i.h +++ b/net/mac80211/ieee80211_i.h | |||
@@ -472,6 +472,8 @@ struct ieee80211_sub_if_data { | |||
472 | struct dentry *auth_transaction; | 472 | struct dentry *auth_transaction; |
473 | struct dentry *flags; | 473 | struct dentry *flags; |
474 | struct dentry *num_beacons_sta; | 474 | struct dentry *num_beacons_sta; |
475 | struct dentry *force_unicast_rateidx; | ||
476 | struct dentry *max_ratectrl_rateidx; | ||
475 | } sta; | 477 | } sta; |
476 | struct { | 478 | struct { |
477 | struct dentry *drop_unencrypted; | 479 | struct dentry *drop_unencrypted; |
@@ -485,9 +487,13 @@ struct ieee80211_sub_if_data { | |||
485 | struct { | 487 | struct { |
486 | struct dentry *drop_unencrypted; | 488 | struct dentry *drop_unencrypted; |
487 | struct dentry *peer; | 489 | struct dentry *peer; |
490 | struct dentry *force_unicast_rateidx; | ||
491 | struct dentry *max_ratectrl_rateidx; | ||
488 | } wds; | 492 | } wds; |
489 | struct { | 493 | struct { |
490 | struct dentry *drop_unencrypted; | 494 | struct dentry *drop_unencrypted; |
495 | struct dentry *force_unicast_rateidx; | ||
496 | struct dentry *max_ratectrl_rateidx; | ||
491 | } vlan; | 497 | } vlan; |
492 | struct { | 498 | struct { |
493 | struct dentry *mode; | 499 | struct dentry *mode; |
diff --git a/net/mac80211/mesh.c b/net/mac80211/mesh.c index b631703bcc8..3ccb3599c04 100644 --- a/net/mac80211/mesh.c +++ b/net/mac80211/mesh.c | |||
@@ -376,7 +376,7 @@ errcopy: | |||
376 | hlist_for_each_safe(p, q, &newtbl->hash_buckets[i]) | 376 | hlist_for_each_safe(p, q, &newtbl->hash_buckets[i]) |
377 | tbl->free_node(p, 0); | 377 | tbl->free_node(p, 0); |
378 | } | 378 | } |
379 | __mesh_table_free(tbl); | 379 | __mesh_table_free(newtbl); |
380 | endgrow: | 380 | endgrow: |
381 | return NULL; | 381 | return NULL; |
382 | } | 382 | } |
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c index e088b440aaf..7d53382f1a5 100644 --- a/net/mac80211/mlme.c +++ b/net/mac80211/mlme.c | |||
@@ -500,51 +500,21 @@ int ieee80211_ht_addt_info_ie_to_ht_bss_info( | |||
500 | static void ieee80211_sta_send_associnfo(struct ieee80211_sub_if_data *sdata, | 500 | static void ieee80211_sta_send_associnfo(struct ieee80211_sub_if_data *sdata, |
501 | struct ieee80211_if_sta *ifsta) | 501 | struct ieee80211_if_sta *ifsta) |
502 | { | 502 | { |
503 | char *buf; | ||
504 | size_t len; | ||
505 | int i; | ||
506 | union iwreq_data wrqu; | 503 | union iwreq_data wrqu; |
507 | 504 | ||
508 | if (!ifsta->assocreq_ies && !ifsta->assocresp_ies) | ||
509 | return; | ||
510 | |||
511 | buf = kmalloc(50 + 2 * (ifsta->assocreq_ies_len + | ||
512 | ifsta->assocresp_ies_len), GFP_KERNEL); | ||
513 | if (!buf) | ||
514 | return; | ||
515 | |||
516 | len = sprintf(buf, "ASSOCINFO("); | ||
517 | if (ifsta->assocreq_ies) { | 505 | if (ifsta->assocreq_ies) { |
518 | len += sprintf(buf + len, "ReqIEs="); | 506 | memset(&wrqu, 0, sizeof(wrqu)); |
519 | for (i = 0; i < ifsta->assocreq_ies_len; i++) { | 507 | wrqu.data.length = ifsta->assocreq_ies_len; |
520 | len += sprintf(buf + len, "%02x", | 508 | wireless_send_event(sdata->dev, IWEVASSOCREQIE, &wrqu, |
521 | ifsta->assocreq_ies[i]); | 509 | ifsta->assocreq_ies); |
522 | } | ||
523 | } | 510 | } |
524 | if (ifsta->assocresp_ies) { | ||
525 | if (ifsta->assocreq_ies) | ||
526 | len += sprintf(buf + len, " "); | ||
527 | len += sprintf(buf + len, "RespIEs="); | ||
528 | for (i = 0; i < ifsta->assocresp_ies_len; i++) { | ||
529 | len += sprintf(buf + len, "%02x", | ||
530 | ifsta->assocresp_ies[i]); | ||
531 | } | ||
532 | } | ||
533 | len += sprintf(buf + len, ")"); | ||
534 | 511 | ||
535 | if (len > IW_CUSTOM_MAX) { | 512 | if (ifsta->assocresp_ies) { |
536 | len = sprintf(buf, "ASSOCRESPIE="); | 513 | memset(&wrqu, 0, sizeof(wrqu)); |
537 | for (i = 0; i < ifsta->assocresp_ies_len; i++) { | 514 | wrqu.data.length = ifsta->assocresp_ies_len; |
538 | len += sprintf(buf + len, "%02x", | 515 | wireless_send_event(sdata->dev, IWEVASSOCRESPIE, &wrqu, |
539 | ifsta->assocresp_ies[i]); | 516 | ifsta->assocresp_ies); |
540 | } | ||
541 | } | 517 | } |
542 | |||
543 | memset(&wrqu, 0, sizeof(wrqu)); | ||
544 | wrqu.data.length = len; | ||
545 | wireless_send_event(sdata->dev, IWEVCUSTOM, &wrqu, buf); | ||
546 | |||
547 | kfree(buf); | ||
548 | } | 518 | } |
549 | 519 | ||
550 | 520 | ||
@@ -864,7 +834,7 @@ static void ieee80211_send_assoc(struct ieee80211_sub_if_data *sdata, | |||
864 | } | 834 | } |
865 | } | 835 | } |
866 | 836 | ||
867 | if (count == 8) { | 837 | if (rates_len > count) { |
868 | pos = skb_put(skb, rates_len - count + 2); | 838 | pos = skb_put(skb, rates_len - count + 2); |
869 | *pos++ = WLAN_EID_EXT_SUPP_RATES; | 839 | *pos++ = WLAN_EID_EXT_SUPP_RATES; |
870 | *pos++ = rates_len - count; | 840 | *pos++ = rates_len - count; |
@@ -2788,7 +2758,7 @@ static void ieee80211_rx_bss_info(struct ieee80211_sub_if_data *sdata, | |||
2788 | jiffies); | 2758 | jiffies); |
2789 | #endif /* CONFIG_MAC80211_IBSS_DEBUG */ | 2759 | #endif /* CONFIG_MAC80211_IBSS_DEBUG */ |
2790 | if (beacon_timestamp > rx_timestamp) { | 2760 | if (beacon_timestamp > rx_timestamp) { |
2791 | #ifndef CONFIG_MAC80211_IBSS_DEBUG | 2761 | #ifdef CONFIG_MAC80211_IBSS_DEBUG |
2792 | printk(KERN_DEBUG "%s: beacon TSF higher than " | 2762 | printk(KERN_DEBUG "%s: beacon TSF higher than " |
2793 | "local TSF - IBSS merge with BSSID %s\n", | 2763 | "local TSF - IBSS merge with BSSID %s\n", |
2794 | sdata->dev->name, print_mac(mac, mgmt->bssid)); | 2764 | sdata->dev->name, print_mac(mac, mgmt->bssid)); |