diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2009-06-18 20:45:21 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-07-10 15:01:47 -0400 |
commit | f58d4ed98bfe7b2febcd6f0d62744b623e4b8371 (patch) | |
tree | cd9699a78b744979af5336f45e787806b870495a | |
parent | b5c469108935bacfe6f45005867256801832fdce (diff) |
cfg80211: send wext MLME-MICHAELMICFAILURE.indication
Instead of having mac80211 do it itself.
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r-- | net/mac80211/event.c | 18 | ||||
-rw-r--r-- | net/wireless/mlme.c | 16 |
2 files changed, 17 insertions, 17 deletions
diff --git a/net/mac80211/event.c b/net/mac80211/event.c index f288d01a6344..3ac636285fb1 100644 --- a/net/mac80211/event.c +++ b/net/mac80211/event.c | |||
@@ -7,8 +7,7 @@ | |||
7 | * | 7 | * |
8 | * mac80211 - events | 8 | * mac80211 - events |
9 | */ | 9 | */ |
10 | 10 | #include <net/cfg80211.h> | |
11 | #include <net/iw_handler.h> | ||
12 | #include "ieee80211_i.h" | 11 | #include "ieee80211_i.h" |
13 | 12 | ||
14 | /* | 13 | /* |
@@ -19,21 +18,6 @@ | |||
19 | void mac80211_ev_michael_mic_failure(struct ieee80211_sub_if_data *sdata, int keyidx, | 18 | void mac80211_ev_michael_mic_failure(struct ieee80211_sub_if_data *sdata, int keyidx, |
20 | struct ieee80211_hdr *hdr, const u8 *tsc) | 19 | struct ieee80211_hdr *hdr, const u8 *tsc) |
21 | { | 20 | { |
22 | union iwreq_data wrqu; | ||
23 | char *buf = kmalloc(128, GFP_ATOMIC); | ||
24 | |||
25 | if (buf) { | ||
26 | /* TODO: needed parameters: count, key type, TSC */ | ||
27 | sprintf(buf, "MLME-MICHAELMICFAILURE.indication(" | ||
28 | "keyid=%d %scast addr=%pM)", | ||
29 | keyidx, hdr->addr1[0] & 0x01 ? "broad" : "uni", | ||
30 | hdr->addr2); | ||
31 | memset(&wrqu, 0, sizeof(wrqu)); | ||
32 | wrqu.data.length = strlen(buf); | ||
33 | wireless_send_event(sdata->dev, IWEVCUSTOM, &wrqu, buf); | ||
34 | kfree(buf); | ||
35 | } | ||
36 | |||
37 | cfg80211_michael_mic_failure(sdata->dev, hdr->addr2, | 21 | cfg80211_michael_mic_failure(sdata->dev, hdr->addr2, |
38 | (hdr->addr1[0] & 0x01) ? | 22 | (hdr->addr1[0] & 0x01) ? |
39 | NL80211_KEYTYPE_GROUP : | 23 | NL80211_KEYTYPE_GROUP : |
diff --git a/net/wireless/mlme.c b/net/wireless/mlme.c index 42184361a109..e56bbea10fc8 100644 --- a/net/wireless/mlme.c +++ b/net/wireless/mlme.c | |||
@@ -77,6 +77,22 @@ void cfg80211_michael_mic_failure(struct net_device *dev, const u8 *addr, | |||
77 | { | 77 | { |
78 | struct wiphy *wiphy = dev->ieee80211_ptr->wiphy; | 78 | struct wiphy *wiphy = dev->ieee80211_ptr->wiphy; |
79 | struct cfg80211_registered_device *rdev = wiphy_to_dev(wiphy); | 79 | struct cfg80211_registered_device *rdev = wiphy_to_dev(wiphy); |
80 | #ifdef CONFIG_WIRELESS_EXT | ||
81 | union iwreq_data wrqu; | ||
82 | char *buf = kmalloc(128, GFP_ATOMIC); | ||
83 | |||
84 | if (buf) { | ||
85 | sprintf(buf, "MLME-MICHAELMICFAILURE.indication(" | ||
86 | "keyid=%d %scast addr=%pM)", key_id, | ||
87 | key_type == NL80211_KEYTYPE_GROUP ? "broad" : "uni", | ||
88 | addr); | ||
89 | memset(&wrqu, 0, sizeof(wrqu)); | ||
90 | wrqu.data.length = strlen(buf); | ||
91 | wireless_send_event(dev, IWEVCUSTOM, &wrqu, buf); | ||
92 | kfree(buf); | ||
93 | } | ||
94 | #endif | ||
95 | |||
80 | nl80211_michael_mic_failure(rdev, dev, addr, key_type, key_id, tsc); | 96 | nl80211_michael_mic_failure(rdev, dev, addr, key_type, key_id, tsc); |
81 | } | 97 | } |
82 | EXPORT_SYMBOL(cfg80211_michael_mic_failure); | 98 | EXPORT_SYMBOL(cfg80211_michael_mic_failure); |