cfg80211: send wext MLME-MICHAELMICFAILURE.indication
authorJohannes Berg <johannes@sipsolutions.net>
Fri, 19 Jun 2009 00:45:21 +0000 (02:45 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 10 Jul 2009 19:01:47 +0000 (15:01 -0400)
Instead of having mac80211 do it itself.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net/mac80211/event.c
net/wireless/mlme.c

index f288d01..3ac6362 100644 (file)
@@ -7,8 +7,7 @@
  *
  * mac80211 - events
  */
-
-#include <net/iw_handler.h>
+#include <net/cfg80211.h>
 #include "ieee80211_i.h"
 
 /*
 void mac80211_ev_michael_mic_failure(struct ieee80211_sub_if_data *sdata, int keyidx,
                                     struct ieee80211_hdr *hdr, const u8 *tsc)
 {
-       union iwreq_data wrqu;
-       char *buf = kmalloc(128, GFP_ATOMIC);
-
-       if (buf) {
-               /* TODO: needed parameters: count, key type, TSC */
-               sprintf(buf, "MLME-MICHAELMICFAILURE.indication("
-                       "keyid=%d %scast addr=%pM)",
-                       keyidx, hdr->addr1[0] & 0x01 ? "broad" : "uni",
-                       hdr->addr2);
-               memset(&wrqu, 0, sizeof(wrqu));
-               wrqu.data.length = strlen(buf);
-               wireless_send_event(sdata->dev, IWEVCUSTOM, &wrqu, buf);
-               kfree(buf);
-       }
-
        cfg80211_michael_mic_failure(sdata->dev, hdr->addr2,
                                     (hdr->addr1[0] & 0x01) ?
                                     NL80211_KEYTYPE_GROUP :
index 4218436..e56bbea 100644 (file)
@@ -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);