mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-10 15:10:38 +00:00
[PATCH] softmac: handle iw_mode properly
Below patch allows using iw_mode auto with softmac. bcm43xx forces managed so this bug wasn't noticed earlier, but this was one of the problems why zd1211 didn't work earlier. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
fc242746ea
commit
68970ce6ac
@ -180,9 +180,21 @@ ieee80211softmac_assoc_req(struct ieee80211_assoc_request **pkt,
|
||||
ieee80211softmac_hdr_3addr(mac, &((*pkt)->header), IEEE80211_STYPE_ASSOC_REQ, net->bssid, net->bssid);
|
||||
|
||||
/* Fill in capability Info */
|
||||
(*pkt)->capability = (mac->ieee->iw_mode == IW_MODE_MASTER) || (mac->ieee->iw_mode == IW_MODE_INFRA) ?
|
||||
cpu_to_le16(WLAN_CAPABILITY_ESS) :
|
||||
cpu_to_le16(WLAN_CAPABILITY_IBSS);
|
||||
switch (mac->ieee->iw_mode) {
|
||||
case IW_MODE_INFRA:
|
||||
(*pkt)->capability = cpu_to_le16(WLAN_CAPABILITY_ESS);
|
||||
break;
|
||||
case IW_MODE_ADHOC:
|
||||
(*pkt)->capability = cpu_to_le16(WLAN_CAPABILITY_IBSS);
|
||||
break;
|
||||
case IW_MODE_AUTO:
|
||||
(*pkt)->capability = net->capabilities & (WLAN_CAPABILITY_ESS|WLAN_CAPABILITY_IBSS);
|
||||
break;
|
||||
default:
|
||||
/* bleh. we don't ever go to these modes */
|
||||
printk(KERN_ERR PFX "invalid iw_mode!\n");
|
||||
break;
|
||||
}
|
||||
/* Need to add this
|
||||
(*pkt)->capability |= mac->ieee->short_slot ?
|
||||
cpu_to_le16(WLAN_CAPABILITY_SHORT_SLOT_TIME) : 0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user