[PATCH] ipw2200: Fix wpa_supplicant association problem
authorZhu Yi <yi.zhu@intel.com>
Thu, 13 Apr 2006 09:21:13 +0000 (17:21 +0800)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 24 Apr 2006 20:15:57 +0000 (16:15 -0400)
The new ipw2200 scan completion event feature will cause a potential event
race condition in wpa_supplicant. The patch fixes this problem by move the
ipw_disassociate() to the IW_AUTH_WPA_ENABLED event handling code.

Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ipw2200.c

index 0f81ff7a1cd60b58e34fcaaf3d5bff8736fe0985..39f82f21974932fc349d366620f4e3e223deffb5 100644 (file)
@@ -6344,8 +6344,6 @@ static void ipw_wpa_assoc_frame(struct ipw_priv *priv, char *wpa_ie,
 {
        /* make sure WPA is enabled */
        ipw_wpa_enable(priv, 1);
-
-       ipw_disassociate(priv);
 }
 
 static int ipw_set_rsn_capa(struct ipw_priv *priv,
@@ -6539,6 +6537,7 @@ static int ipw_wx_set_auth(struct net_device *dev,
 
        case IW_AUTH_WPA_ENABLED:
                ret = ipw_wpa_enable(priv, param->value);
+               ipw_disassociate(priv);
                break;
 
        case IW_AUTH_RX_UNENCRYPTED_EAPOL: