diff options
Diffstat (limited to 'net/mac80211/event.c')
-rw-r--r-- | net/mac80211/event.c | 23 |
1 files changed, 4 insertions, 19 deletions
diff --git a/net/mac80211/event.c b/net/mac80211/event.c index f288d01a6344..01ae759518f6 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 | /* |
@@ -17,26 +16,12 @@ | |||
17 | * driver or is still in the frame), it should provide that information. | 16 | * driver or is still in the frame), it should provide that information. |
18 | */ | 17 | */ |
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, |
20 | gfp_t gfp) | ||
21 | { | 21 | { |
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, | 22 | cfg80211_michael_mic_failure(sdata->dev, hdr->addr2, |
38 | (hdr->addr1[0] & 0x01) ? | 23 | (hdr->addr1[0] & 0x01) ? |
39 | NL80211_KEYTYPE_GROUP : | 24 | NL80211_KEYTYPE_GROUP : |
40 | NL80211_KEYTYPE_PAIRWISE, | 25 | NL80211_KEYTYPE_PAIRWISE, |
41 | keyidx, tsc); | 26 | keyidx, tsc, gfp); |
42 | } | 27 | } |