Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f58d4ed9 authored by Johannes Berg's avatar Johannes Berg Committed by John W. Linville
Browse files

cfg80211: send wext MLME-MICHAELMICFAILURE.indication



Instead of having mac80211 do it itself.

Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent b5c46910
Loading
Loading
Loading
Loading
+1 −17
Original line number Diff line number Diff line
@@ -7,8 +7,7 @@
 *
 * mac80211 - events
 */

#include <net/iw_handler.h>
#include <net/cfg80211.h>
#include "ieee80211_i.h"

/*
@@ -19,21 +18,6 @@
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 :
+16 −0
Original line number Diff line number Diff line
@@ -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);