diff options
Diffstat (limited to 'net/ieee80211/softmac/ieee80211softmac_io.c')
| -rw-r--r-- | net/ieee80211/softmac/ieee80211softmac_io.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/net/ieee80211/softmac/ieee80211softmac_io.c b/net/ieee80211/softmac/ieee80211softmac_io.c index 09541611e48c..82bfddbf33a2 100644 --- a/net/ieee80211/softmac/ieee80211softmac_io.c +++ b/net/ieee80211/softmac/ieee80211softmac_io.c | |||
| @@ -96,8 +96,7 @@ ieee80211softmac_alloc_mgt(u32 size) | |||
| 96 | if(size > IEEE80211_DATA_LEN) | 96 | if(size > IEEE80211_DATA_LEN) |
| 97 | return NULL; | 97 | return NULL; |
| 98 | /* Allocate the frame */ | 98 | /* Allocate the frame */ |
| 99 | data = kmalloc(size, GFP_ATOMIC); | 99 | data = kzalloc(size, GFP_ATOMIC); |
| 100 | memset(data, 0, size); | ||
| 101 | return data; | 100 | return data; |
| 102 | } | 101 | } |
| 103 | 102 | ||
| @@ -229,6 +228,9 @@ ieee80211softmac_assoc_req(struct ieee80211_assoc_request **pkt, | |||
| 229 | return 0; | 228 | return 0; |
| 230 | ieee80211softmac_hdr_3addr(mac, &((*pkt)->header), IEEE80211_STYPE_ASSOC_REQ, net->bssid, net->bssid); | 229 | ieee80211softmac_hdr_3addr(mac, &((*pkt)->header), IEEE80211_STYPE_ASSOC_REQ, net->bssid, net->bssid); |
| 231 | 230 | ||
| 231 | /* Fill in the capabilities */ | ||
| 232 | (*pkt)->capability = ieee80211softmac_capabilities(mac, net); | ||
| 233 | |||
| 232 | /* Fill in Listen Interval (?) */ | 234 | /* Fill in Listen Interval (?) */ |
| 233 | (*pkt)->listen_interval = cpu_to_le16(10); | 235 | (*pkt)->listen_interval = cpu_to_le16(10); |
| 234 | 236 | ||
| @@ -465,3 +467,17 @@ ieee80211softmac_send_mgt_frame(struct ieee80211softmac_device *mac, | |||
| 465 | kfree(pkt); | 467 | kfree(pkt); |
| 466 | return 0; | 468 | return 0; |
| 467 | } | 469 | } |
| 470 | |||
| 471 | /* Beacon handling */ | ||
| 472 | int ieee80211softmac_handle_beacon(struct net_device *dev, | ||
| 473 | struct ieee80211_beacon *beacon, | ||
| 474 | struct ieee80211_network *network) | ||
| 475 | { | ||
| 476 | struct ieee80211softmac_device *mac = ieee80211_priv(dev); | ||
| 477 | |||
| 478 | if (mac->associated && memcmp(network->bssid, mac->associnfo.bssid, ETH_ALEN) == 0) | ||
| 479 | ieee80211softmac_process_erp(mac, network->erp_value); | ||
| 480 | |||
| 481 | return 0; | ||
| 482 | } | ||
| 483 | |||
