Skip to content

Commit

Permalink
[PATCH] wireless/airo: fix setting TX key index plus key in ENCODEEXT
Browse files Browse the repository at this point in the history
The previous patch that added ENCODEEXT and AUTH support to the airo
driver contained a slight error which would cause setting the TX
key index ignore a valid key-set request at the same time.  This patch
allows any combination of setting the TX key index and setting an
encryption key.

Signed-off-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
  • Loading branch information
Dan Williams authored and John W. Linville committed Feb 17, 2006
1 parent 1ba61e0 commit 22d8846
Showing 1 changed file with 8 additions and 3 deletions.
11 changes: 8 additions & 3 deletions drivers/net/wireless/airo.c
Original file line number Diff line number Diff line change
Expand Up @@ -6266,7 +6266,7 @@ static int airo_set_encodeext(struct net_device *dev,
CapabilityRid cap_rid; /* Card capability info */
int perm = ( encoding->flags & IW_ENCODE_TEMP ? 0 : 1 );
u16 currentAuthType = local->config.authType;
int idx, key_len, alg = ext->alg; /* Check encryption mode */
int idx, key_len, alg = ext->alg, set_key = 1;
wep_key_t key;

/* Is WEP supported ? */
Expand All @@ -6289,10 +6289,15 @@ static int airo_set_encodeext(struct net_device *dev,
if (encoding->flags & IW_ENCODE_DISABLED)
alg = IW_ENCODE_ALG_NONE;

/* Just setting the transmit key? */
if (ext->ext_flags & IW_ENCODE_EXT_SET_TX_KEY) {
/* Only set transmit key index here, actual
* key is set below if needed.
*/
set_wep_key(local, idx, NULL, 0, perm, 1);
} else {
set_key = ext->key_len > 0 ? 1 : 0;
}

if (set_key) {
/* Set the requested key first */
memset(key.key, 0, MAX_KEY_SIZE);
switch (alg) {
Expand Down

0 comments on commit 22d8846

Please sign in to comment.