diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2009-06-19 02:45:21 +0200 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-07-10 15:01:47 -0400 |
commit | f58d4ed98bfe7b2febcd6f0d62744b623e4b8371 (patch) | |
tree | cd9699a78b744979af5336f45e787806b870495a /net/wireless/mlme.c | |
parent | b5c469108935bacfe6f45005867256801832fdce (diff) | |
download | lwn-f58d4ed98bfe7b2febcd6f0d62744b623e4b8371.tar.gz lwn-f58d4ed98bfe7b2febcd6f0d62744b623e4b8371.zip |
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>
Diffstat (limited to 'net/wireless/mlme.c')
-rw-r--r-- | net/wireless/mlme.c | 16 |
1 files changed, 16 insertions, 0 deletions
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, { struct wiphy *wiphy = dev->ieee80211_ptr->wiphy; struct cfg80211_registered_device *rdev = wiphy_to_dev(wiphy); +#ifdef CONFIG_WIRELESS_EXT + union iwreq_data wrqu; + char *buf = kmalloc(128, GFP_ATOMIC); + + if (buf) { + sprintf(buf, "MLME-MICHAELMICFAILURE.indication(" + "keyid=%d %scast addr=%pM)", key_id, + key_type == NL80211_KEYTYPE_GROUP ? "broad" : "uni", + addr); + memset(&wrqu, 0, sizeof(wrqu)); + wrqu.data.length = strlen(buf); + wireless_send_event(dev, IWEVCUSTOM, &wrqu, buf); + kfree(buf); + } +#endif + nl80211_michael_mic_failure(rdev, dev, addr, key_type, key_id, tsc); } EXPORT_SYMBOL(cfg80211_michael_mic_failure); |