Commit 9839178e authored by Jussi Kivilinna's avatar Jussi Kivilinna Committed by John W. Linville
Browse files

rndis_wlan: do not try to restore wpa keys using add_wep_key()



set_infra_mode() tried to restore wpa keys using add_wep_key(). This never
worked so prevent driver from trying.

Signed-off-by: default avatarJussi Kivilinna <jussi.kivilinna@mbnet.fi>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent b145ee0c
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -405,6 +405,7 @@ struct rndis_wext_private {
	int  encr_tx_key_index;
	char encr_keys[4][32];
	int  encr_key_len[4];
	char encr_key_wpa[4];
	int  wpa_version;
	int  wpa_keymgmt;
	int  wpa_authalg;
@@ -956,7 +957,7 @@ static int set_infra_mode(struct usbnet *usbdev, int mode)
	if (priv->wpa_keymgmt == 0 ||
		priv->wpa_keymgmt == IW_AUTH_KEY_MGMT_802_1X) {
		for (i = 0; i < 4; i++) {
			if (priv->encr_key_len[i] > 0)
			if (priv->encr_key_len[i] > 0 && !priv->encr_key_wpa[i])
				add_wep_key(usbdev, priv->encr_keys[i],
						priv->encr_key_len[i], i);
		}
@@ -1027,6 +1028,7 @@ static int add_wep_key(struct usbnet *usbdev, char *key, int key_len, int index)
	}

	priv->encr_key_len[index] = key_len;
	priv->encr_key_wpa[index] = 0;
	memcpy(&priv->encr_keys[index], key, key_len);

	return 0;
@@ -1092,7 +1094,8 @@ static int add_wpa_key(struct usbnet *usbdev, const u8 *key, int key_len,
		return ret;

	priv->encr_key_len[index] = key_len;
	memcpy(&priv->encr_keys[index], ndis_key.material, key_len);
	priv->encr_key_wpa[index] = 1;

	if (flags & ndis_80211_addkey_transmit_key)
		priv->encr_tx_key_index = index;

@@ -1112,6 +1115,7 @@ static int remove_key(struct usbnet *usbdev, int index, u8 bssid[ETH_ALEN])
		return 0;

	priv->encr_key_len[index] = 0;
	priv->encr_key_wpa[index] = 0;
	memset(&priv->encr_keys[index], 0, sizeof(priv->encr_keys[index]));

	if (priv->wpa_cipher_pair == IW_AUTH_CIPHER_TKIP ||