On Tue, 2010-01-19 at 00:19 +0100, Samuel Ortiz wrote: > With the v10 firmware running on 8688 HW, clearing WPA keys after setting the > WEP key prevents us from being able to associate with WEP APs. > Swapping the calling order for assoc_helper_wpa_keys() and > assoc_helper_wep_keys fixes that issue. > > Signed-off-by: Samuel Ortiz <sameo@xxxxxxxxxxxxxxx> Acked-by: Dan Williams <dcbw@xxxxxxxxxx> Tested on both sd8686 (v9 fw) and usb8388 (v5 OLPC fw). Switching between WEP and WPA-PSK on-the-fly works as expected with this patch. Though maybe we want to add a comment about this specific issue that says something like: /* v10 FW wants WPA keys to be set/cleared after WEP key operations, * otherwise it will fail to correctly associate to WEP networks. * Other firmware versions don't appear to care. */ > --- > drivers/net/wireless/libertas/assoc.c | 15 ++++++++------- > 1 files changed, 8 insertions(+), 7 deletions(-) > > diff --git a/drivers/net/wireless/libertas/assoc.c b/drivers/net/wireless/libertas/assoc.c > index 5e650f3..fb3dff0 100644 > --- a/drivers/net/wireless/libertas/assoc.c > +++ b/drivers/net/wireless/libertas/assoc.c > @@ -2052,13 +2052,6 @@ void lbs_association_worker(struct work_struct *work) > goto out; > } > > - if ( test_bit(ASSOC_FLAG_WEP_KEYS, &assoc_req->flags) > - || test_bit(ASSOC_FLAG_WEP_TX_KEYIDX, &assoc_req->flags)) { > - ret = assoc_helper_wep_keys(priv, assoc_req); > - if (ret) > - goto out; > - } > - > if (test_bit(ASSOC_FLAG_SECINFO, &assoc_req->flags)) { > ret = assoc_helper_secinfo(priv, assoc_req); > if (ret) > @@ -2078,6 +2071,14 @@ void lbs_association_worker(struct work_struct *work) > goto out; > } > > + if ( test_bit(ASSOC_FLAG_WEP_KEYS, &assoc_req->flags) > + || test_bit(ASSOC_FLAG_WEP_TX_KEYIDX, &assoc_req->flags)) { > + ret = assoc_helper_wep_keys(priv, assoc_req); > + if (ret) > + goto out; > + } > + > + > /* SSID/BSSID should be the _last_ config option set, because they > * trigger the association attempt. > */ > -- > 1.6.3.3 > -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html