Hiya, I stuck in a few printk(KERN_DEBUG __LINE__) around the new -EINVAL's and tried to see why setting things by iwconfig manually works, but NM/wpa_supplicant does not, and here is what I found. Around line 600 of net/wireless/wext-compat.c (this is the hackish mod version): ------------------------------------------ int cfg80211_wext_siwencodeext(struct net_device *dev, struct iw_request_info *info, struct iw_point *erq, char *extra) switch (ext->alg) { case IW_ENCODE_ALG_WEP: if (erq->length == 5) cipher = WLAN_CIPHER_SUITE_WEP40; else if (erq->length == 13) cipher = WLAN_CIPHER_SUITE_WEP104; else { printk(KERN_DEBUG "line %d %d\n", __LINE__, erq->length); cipher = WLAN_CIPHER_SUITE_WEP104; /* return -EINVAL; */ } break; } ------------------------------------------------ For some unknown reason, when run with NM/wpa_supplicant with the same authentication credentials to the same AP, erq->length is 53 instead of 13. If I just modify it as above instead of returning EINVAL, then I get to authenticate, etc. in the old mac80211 ioctls, the decision of cipher is postponed a lot later, after playing with the default key a bit? Anyway, I think 53 is either 40+13 or 13 *4 +1, so is it a case of wpa_supplicant putting more stuff at the end or an offset somewhere? -- 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