All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Roland Vossen" <rvossen@broadcom.com>
To: gregkh@suse.de
Cc: devel@linuxdriverproject.org, linux-wireless@vger.kernel.org
Subject: [PATCH 10/20] staging: brcm80211: removed unused encryption/security functionality
Date: Mon, 12 Sep 2011 12:14:54 +0200	[thread overview]
Message-ID: <1315822504-24210-11-git-send-email-rvossen@broadcom.com> (raw)
In-Reply-To: <1315822504-24210-1-git-send-email-rvossen@broadcom.com>

Softmac relies on Mac80211 for this.

Signed-off-by: Roland Vossen <rvossen@broadcom.com>
Reviewed-by: Arend van Spriel <arend@broadcom.com>
---
 drivers/staging/brcm80211/brcmsmac/alloc.c |   15 ----
 drivers/staging/brcm80211/brcmsmac/main.c  |   59 +----------------
 drivers/staging/brcm80211/brcmsmac/main.h  |   97 ----------------------------
 drivers/staging/brcm80211/brcmsmac/pub.h   |   12 ----
 4 files changed, 3 insertions(+), 180 deletions(-)

diff --git a/drivers/staging/brcm80211/brcmsmac/alloc.c b/drivers/staging/brcm80211/brcmsmac/alloc.c
index 7a499ba..344c0ad 100644
--- a/drivers/staging/brcm80211/brcmsmac/alloc.c
+++ b/drivers/staging/brcm80211/brcmsmac/alloc.c
@@ -210,20 +210,6 @@ struct brcms_c_info *brcms_c_attach_malloc(uint unit, uint *err, uint devid)
 	}
 	brcms_c_bsscfg_ID_assign(wlc, wlc->cfg);
 
-	wlc->wsec_def_keys[0] =
-		kzalloc(sizeof(struct wsec_key) * BRCMS_DEFAULT_KEYS,
-			GFP_ATOMIC);
-	if (wlc->wsec_def_keys[0] == NULL) {
-		*err = 1015;
-		goto fail;
-	} else {
-		int i;
-		for (i = 1; i < BRCMS_DEFAULT_KEYS; i++)
-			wlc->wsec_def_keys[i] = (struct wsec_key *)
-			    ((unsigned long)wlc->wsec_def_keys[0] +
-			     (sizeof(struct wsec_key) * i));
-	}
-
 	wlc->protection = kzalloc(sizeof(struct brcms_protection),
 				  GFP_ATOMIC);
 	if (wlc->protection == NULL) {
@@ -280,7 +266,6 @@ void brcms_c_detach_mfree(struct brcms_c_info *wlc)
 	brcms_c_pub_mfree(wlc->pub);
 	kfree(wlc->modulecb);
 	kfree(wlc->default_bss);
-	kfree(wlc->wsec_def_keys[0]);
 	kfree(wlc->protection);
 	kfree(wlc->stf);
 	kfree(wlc->bandstate[0]);
diff --git a/drivers/staging/brcm80211/brcmsmac/main.c b/drivers/staging/brcm80211/brcmsmac/main.c
index d755c18..cc669d6 100644
--- a/drivers/staging/brcm80211/brcmsmac/main.c
+++ b/drivers/staging/brcm80211/brcmsmac/main.c
@@ -32,16 +32,6 @@
 #include "ucode_loader.h"
 #include "main.h"
 
-
-/*
- * WPA(2) definitions
- */
-#define RSN_CAP_4_REPLAY_CNTRS		2
-#define RSN_CAP_16_REPLAY_CNTRS		3
-
-#define WPA_CAP_4_REPLAY_CNTRS		RSN_CAP_4_REPLAY_CNTRS
-#define WPA_CAP_16_REPLAY_CNTRS		RSN_CAP_16_REPLAY_CNTRS
-
 /*
  * Indication for txflowcontrol that all priority bits in
  * TXQ_STOP_FOR_PRIOFC_MASK are to be considered.
@@ -181,9 +171,6 @@
 /* stop txq enqueue for ampdu flow control */
 #define TXQ_STOP_FOR_AMPDU_FLOW_CNTRL	0x00000200
 
-/* number of 802.11 default (non-paired, group keys) */
-#define WSEC_MAX_DEFAULT_KEYS	4	/* # of default keys */
-
 #define	BRCMS_HWRXOFF		38	/* chip rx buffer offset */
 
 #define OSL_SYSUPTIME()		((u32)jiffies * (1000 / HZ))
@@ -376,18 +363,7 @@
 #define BRCMS_TX_FIFO_ENAB(wlc, fifo) \
 			((wlc)->tx_prec_map |= (wlc)->fifo2prec_map[fifo])
 
-/*
- * if wpa is in use then portopen is true when the
- * group key is plumbed otherwise it is always true
- */
-#define WSEC_ENABLED(wsec) ((wsec) & (WEP_ENABLED | TKIP_ENABLED | AES_ENABLED))
-
-#define BRCMS_SW_KEYS(wlc, bsscfg) ((((wlc)->wsec_swkeys) || \
-	((bsscfg)->wsec & WSEC_SWFLAG)))
-
-#define BRCMS_PORTOPEN(cfg) \
-	(((cfg)->WPA_auth != WPA_AUTH_DISABLED && WSEC_ENABLED((cfg)->wsec)) ? \
-	(cfg)->wsec_portopen : true)
+#define BRCMS_PORTOPEN(cfg) true
 
 #define brcms_b_copyfrom_shm(wlc_hw, offset, buf, len)                 \
 	brcms_b_copyfrom_objmem(wlc_hw, offset, buf, len, OBJADDR_SHM_SEL)
@@ -4325,8 +4301,6 @@ static void brcms_b_watchdog(void *arg)
 static void brcms_c_watchdog(void *arg)
 {
 	struct brcms_c_info *wlc = (struct brcms_c_info *) arg;
-	int i;
-	struct brcms_bss_cfg *cfg;
 
 	BCMMSG(wlc->wiphy, "wl%d\n", wlc->pub->unit);
 
@@ -4372,14 +4346,6 @@ static void brcms_c_watchdog(void *arg)
 	if ((wlc->pub->now % SW_TIMER_MAC_STAT_UPD) == 0)
 		brcms_c_statsupd(wlc);
 
-	/* Manage TKIP countermeasures timers */
-	FOREACH_BSS(wlc, i, cfg)
-		if (cfg->tk_cm_dt)
-			cfg->tk_cm_dt--;
-		if (cfg->tk_cm_bt)
-			cfg->tk_cm_bt--;
-	END_FOREACH_BSS()
-
 	if (BRCMS_ISNPHY(wlc->band) && !wlc->pub->tempsense_disable &&
 	    ((wlc->pub->now - wlc->tempsense_lasttime) >=
 	     BRCMS_TEMPSENSE_PERIOD)) {
@@ -4469,15 +4435,6 @@ void brcms_c_info_init(struct brcms_c_info *wlc, int unit)
 	wlc->SRL = RETRY_SHORT_DEF;
 	wlc->LRL = RETRY_LONG_DEF;
 
-	/* Set flag to indicate that hw keys should be used when available. */
-	wlc->wsec_swkeys = false;
-
-	/* init the 4 static WEP default keys */
-	for (i = 0; i < WSEC_MAX_DEFAULT_KEYS; i++) {
-		wlc->wsec_keys[i] = wlc->wsec_def_keys[i];
-		wlc->wsec_keys[i]->idx = (u8) i;
-	}
-
 	/* WME QoS mode is Auto by default */
 	wlc->pub->_wme = AUTO;
 	wlc->pub->_ampdu = AMPDU_AGG_HOST;
@@ -7128,7 +7085,7 @@ static u16
 brcms_c_d11hdrs_mac80211(struct brcms_c_info *wlc, struct ieee80211_hw *hw,
 		     struct sk_buff *p, struct scb *scb, uint frag,
 		     uint nfrags, uint queue, uint next_frag_len,
-		     struct wsec_key *key, u32 rspec_override)
+		     u32 rspec_override)
 {
 	struct ieee80211_hdr *h;
 	struct d11txh *txh;
@@ -7171,14 +7128,6 @@ brcms_c_d11hdrs_mac80211(struct brcms_c_info *wlc, struct ieee80211_hw *hw,
 	len = brcmu_pkttotlen(p);
 	phylen = len + FCS_LEN;
 
-	/* If WEP enabled, add room in phylen for the additional bytes of
-	 * ICV which MAC generates.  We do NOT add the additional bytes to
-	 * the packet itself, thus phylen = packet length + ICV_LEN + FCS_LEN
-	 * in this case
-	 */
-	if (key)
-		phylen += key->icv_len;
-
 	/* Get tx_info */
 	tx_info = IEEE80211_SKB_CB(p);
 
@@ -7796,9 +7745,7 @@ void brcms_c_sendpkt_mac80211(struct brcms_c_info *wlc, struct sk_buff *sdu,
 	prio = ieee80211_is_data(d11_header->frame_control) ? sdu->priority :
 		MAXPRIO;
 	fifo = prio2fifo[prio];
-	if (unlikely
-	    (brcms_c_d11hdrs_mac80211(
-		wlc, hw, sdu, scb, 0, 1, fifo, 0, NULL, 0)))
+	if (brcms_c_d11hdrs_mac80211(wlc, hw, sdu, scb, 0, 1, fifo, 0, 0))
 		return;
 	brcms_c_txq_enq(wlc, scb, sdu, BRCMS_PRIO_TO_PREC(prio));
 	brcms_c_send_q(wlc);
diff --git a/drivers/staging/brcm80211/brcmsmac/main.h b/drivers/staging/brcm80211/brcmsmac/main.h
index a0dcacc..674750b 100644
--- a/drivers/staging/brcm80211/brcmsmac/main.h
+++ b/drivers/staging/brcm80211/brcmsmac/main.h
@@ -237,44 +237,6 @@ struct brcms_stf {
 #define BRCMS_CHAN_CHANNEL(x)     (((x) & RXS_CHAN_ID_MASK) \
 				   >> RXS_CHAN_ID_SHIFT)
 
-/* Maximum # of keys that wl driver supports in S/W.
- * Keys supported in H/W is less than or equal to WSEC_MAX_KEYS.
- */
-#define WSEC_MAX_KEYS		54 /* Max # of keys (50 + 4 default keys) */
-#define BRCMS_DEFAULT_KEYS	4 /* Default # of keys */
-
-/*
-* Max # of keys currently supported:
-*
-*     s/w keys if WSEC_SW(wlc->wsec).
-*     h/w keys otherwise.
-*/
-
-struct wsec_iv {
-	u32 hi;		/* upper 32 bits of IV */
-	u16 lo;		/* lower 16 bits of IV */
-};
-
-#define BRCMS_NUMRXIVS	16	/* # rx IVs (one per 802.11e TID) */
-
-struct wsec_key {
-	u8 ea[ETH_ALEN];	/* per station */
-	u8 idx;		/* key index in wsec_keys array */
-	u8 id;		/* key ID [0-3] */
-	u8 algo;	/* CRYPTO_ALGO_AES_CCM, CRYPTO_ALGO_WEP128, etc */
-	u8 rcmta;	/* rcmta entry index, same as idx by default */
-	u16 flags;	/* misc flags */
-	u8 algo_hw;	/* cache for hw register */
-	u8 aes_mode;	/* cache for hw register */
-	s8 iv_len;	/* IV length */
-	s8 icv_len;	/* ICV length */
-	u32 len;	/* key length..don't move this var */
-	/* data is 4byte aligned */
-	u8 data[WLAN_MAX_KEY_LEN];	/* key data */
-	struct wsec_iv rxiv[BRCMS_NUMRXIVS];	/* Rx IV (one per TID) */
-	struct wsec_iv txiv;		/* Tx IV */
-};
-
 /*
  * core state (mac)
  */
@@ -575,10 +537,6 @@ struct brcms_txq_info {
  * bsscfg: set of BSS configurations, idx 0 is default and always valid.
  * cfg: the primary bsscfg (can be AP or STA).
  * tx_queues: common TX Queue list.
- * wsec_keys[WSEC_MAX_KEYS]: dynamic key storage.
- * wsec_def_keys[BRCMS_DEFAULT_KEYS]: default key storage.
- * wsec_swkeys: indicates that all keys should be treated as
- *		sw keys (used for debugging).
  * modulecb:
  * mimoft: SIGN or 11N.
  * cck_40txbw: 11N, cck tx b/w override when in 40MHZ mode.
@@ -718,10 +676,6 @@ struct brcms_c_info {
 	/* tx queue */
 	struct brcms_txq_info *tx_queues;
 
-	/* security */
-	struct wsec_key *wsec_keys[WSEC_MAX_KEYS];
-	struct wsec_key *wsec_def_keys[BRCMS_DEFAULT_KEYS];
-	bool wsec_swkeys;
 	struct modulecb *modulecb;
 
 	u8 mimoft;
@@ -808,28 +762,6 @@ struct antsel_info {
  * nmac: # of entries on maclist array
  * macmode: allow/deny stations on maclist array
  * maclist: list of source MAC addrs to match
-
- * security
- * --------
- * wsec: wireless security bitvec
- * auth: 802.11 authentication: Open, Shared Key, WPA
- * openshared: try Open auth first, then Shared Key
- * wsec_restrict: drop unencrypted packets if wsec is enabled
- * eap_restrict: restrict data until 802.1X auth succeeds
- * WPA_auth: WPA authenticated key management
- * wpa2_preauth: default is true, wpa_cap sets value
- * wsec_portopen: indicates keys are plumbed
- * wpa_none_txiv: global txiv for WPA_NONE, tkip and aes
- * wsec_index: 0-3: default tx key, -1: not set
- * bss_def_keys: default key storage
- *
- * TKIP countermeasures
- * --------------------
- * tkip_countermeasures: flags TKIP no-assoc period
- * tk_cm_dt: detect timer
- * tk_cm_bt: blocking timer
- * tk_cm_bt_tmstmp: Timestamp when TKIP BT is activated
- * tk_cm_activate: activate countermeasures after EAPOL-Key sent
  *
  * BSSID: BSSID (associated)
  * cur_etheraddr: h/w address
@@ -839,12 +771,7 @@ struct antsel_info {
  * bcn: AP beacon
  * bcn_len: AP beacon length
  * ar_disassoc: disassociated in associated recreation
- * auth_atmptd: auth type (open/shared) attempted
  *
- * pmkid_cand: PMKID candidate list
- * npmkid_cand: num PMKID candidates
- * pmkid: PMKID cache
- * npmkid: num cached PMKIDs
  * current_bss: BSS parms in ASSOCIATED state
  *
  * PM states
@@ -854,8 +781,6 @@ struct antsel_info {
  * priorPMstate: Detecting PM state transitions
  * PSpoll: flags there is an outstanding PS-Poll frame
  *
- * rcmta: BSSID entry in RCMTA, use the wsec key to manage the RCMTA entries.
- *
  * ID: 'unique' ID of this bsscfg, assigned at bsscfg allocation
  *
  * txrspecidx: index into tx rate circular buffer
@@ -875,22 +800,6 @@ struct brcms_bss_cfg {
 	uint nmac;
 	int macmode;
 	struct ether_addr *maclist;
-	u32 wsec;
-	s16 auth;
-	s16 openshared;
-	bool wsec_restrict;
-	bool eap_restrict;
-	u16 WPA_auth;
-	bool wpa2_preauth;
-	bool wsec_portopen;
-	struct wsec_iv wpa_none_txiv;
-	int wsec_index;
-	struct wsec_key *bss_def_keys[BRCMS_DEFAULT_KEYS];
-	bool tkip_countermeasures;
-	u32 tk_cm_dt;
-	u32 tk_cm_bt;
-	u32 tk_cm_bt_tmstmp;
-	bool tk_cm_activate;
 	u8 BSSID[ETH_ALEN];
 	u8 cur_etheraddr[ETH_ALEN];
 	u16 bcmc_fid;
@@ -899,17 +808,11 @@ struct brcms_bss_cfg {
 	u8 *bcn;
 	uint bcn_len;
 	bool ar_disassoc;
-	int auth_atmptd;
-	struct pmkid_cand pmkid_cand[MAXPMKID];
-	uint npmkid_cand;
-	struct pmkid pmkid[MAXPMKID];
-	uint npmkid;
 	struct brcms_bss_info *current_bss;
 	bool PMawakebcn;
 	bool PMpending;
 	bool priorPMstate;
 	bool PSpoll;
-	struct wsec_key *rcmta;
 	u16 ID;
 	uint txrspecidx;
 	u32 txrspec[NTXRATE][2];
diff --git a/drivers/staging/brcm80211/brcmsmac/pub.h b/drivers/staging/brcm80211/brcmsmac/pub.h
index 20582f1..9e767fb 100644
--- a/drivers/staging/brcm80211/brcmsmac/pub.h
+++ b/drivers/staging/brcm80211/brcmsmac/pub.h
@@ -128,16 +128,6 @@ struct brcms_c_rateset {
 	u8 mcs[MCSSET_LEN];	/* supported mcs index bit map */
 };
 
-struct rsn_parms {
-	u8 flags;		/* misc booleans (e.g., supported) */
-	u8 multicast;	/* multicast cipher */
-	u8 ucount;		/* count of unicast ciphers */
-	u8 unicast[4];	/* unicast ciphers */
-	u8 acount;		/* count of auth modes */
-	u8 auth[4];		/* Authentication modes */
-	u8 PAD[4];		/* padding for future growth */
-};
-
 /* All the HT-specific default advertised capabilities (including AMPDU)
  * should be grouped here at one place
  */
@@ -160,8 +150,6 @@ struct brcms_bss_info {
 	s8 phy_noise;		/* noise right after tx (in dBm) */
 	u16 capability;	/* Capability information */
 	u8 wme_qosinfo;	/* QoS Info from WME IE; valid if BSS_WME flag set */
-	struct rsn_parms wpa;
-	struct rsn_parms wpa2;
 	u16 qbss_load_aac;	/* qbss load available admission capacity */
 	/* qbss_load_chan_free <- (0xff - chan utilization of qbss_load_ie_t) */
 	u8 qbss_load_chan_free;	/* indicates how free the channel is */
-- 
1.7.4.1



  parent reply	other threads:[~2011-09-12 10:15 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-12 10:14 [PATCH 00/20] staging: brcm80211: 4th reaction to mainline patch #2 Roland Vossen
2011-09-12 10:14 ` [PATCH 01/20] staging: brcm80211: stop using kthread for iscan status check in fullmac Roland Vossen
2011-09-12 10:14 ` [PATCH 02/20] staging: brcm80211: cleaned up softmac types.h macro's Roland Vossen
2011-09-12 10:14 ` [PATCH 03/20] staging: brcm80211: cleaned up brcmu_utils.h macro's Roland Vossen
2011-09-12 10:14 ` [PATCH 04/20] staging: brcm80211: cleaned up brcmu_wifi.h macro's Roland Vossen
2011-09-12 10:14 ` [PATCH 05/20] staging: brcm80211: cleaned up fullmac macro's Roland Vossen
2011-09-12 10:14 ` [PATCH 06/20] staging: brcm80211: removed fullmac BRCMF_IOCTL_MAGIC support Roland Vossen
2011-09-12 10:14 ` [PATCH 07/20] staging: brcm80211: removed fullmac function brcmf_sdcard_iovar_op() Roland Vossen
2011-09-12 10:14 ` [PATCH 08/20] staging: brcm80211: remove static function variable in brcmfmac Roland Vossen
2011-09-12 10:14 ` [PATCH 09/20] staging: brcm80211: remove static variables from wl_cfg80211.c Roland Vossen
2011-09-12 13:06   ` Dan Carpenter
2011-09-12 13:34     ` Roland Vossen
2011-09-12 10:14 ` Roland Vossen [this message]
2011-09-12 13:13   ` [PATCH 10/20] staging: brcm80211: removed unused encryption/security functionality Dan Carpenter
2011-09-12 10:14 ` [PATCH 11/20] staging: brcm80211: removed softmac 'tunable' functionality Roland Vossen
2011-09-12 10:14 ` [PATCH 12/20] staging: brcm80211: cleaned up unused softmac struct members Roland Vossen
2011-09-12 10:14 ` [PATCH 13/20] staging: brcm80211: removed softmac ratespec override functionality Roland Vossen
2011-09-12 13:21   ` Dan Carpenter
2011-09-12 13:24     ` Dan Carpenter
2011-09-12 13:30       ` Roland Vossen
2011-09-12 10:14 ` [PATCH 14/20] staging: brcm80211: removed unused softmac code after macro cleanup Roland Vossen
2011-09-12 10:14 ` [PATCH 15/20] staging: brcm80211: removed unused softmac struct brcms_c_if Roland Vossen
2011-09-12 10:15 ` [PATCH 16/20] staging: brcm80211: removed several unused softmac main.h struct members Roland Vossen
2011-09-12 10:15 ` [PATCH 17/20] staging: brcm80211: removed unused softmac transmit power variables Roland Vossen
2011-09-12 10:15 ` [PATCH 18/20] staging: brcm80211: removed more unused softmac main.h struct members Roland Vossen
2011-09-12 10:15 ` [PATCH 19/20] staging: brcm80211: removed softmac files alloc.c/alloc.h Roland Vossen
2011-09-12 10:15 ` [PATCH 20/20] staging: brcm80211: remove static function declaration in wl_cfg80211 Roland Vossen
2011-09-12 14:56 ` [PATCH 00/20] staging: brcm80211: 4th reaction to mainline patch #2 Greg KH

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1315822504-24210-11-git-send-email-rvossen@broadcom.com \
    --to=rvossen@broadcom.com \
    --cc=devel@linuxdriverproject.org \
    --cc=gregkh@suse.de \
    --cc=linux-wireless@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.