Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6

+53 -21
+1
drivers/net/wireless/ipw2200.c
··· 11577 11577 priv->prom_priv->priv = priv; 11578 11578 11579 11579 strcpy(priv->prom_net_dev->name, "rtap%d"); 11580 + memcpy(priv->prom_net_dev->dev_addr, priv->mac_addr, ETH_ALEN); 11580 11581 11581 11582 priv->prom_net_dev->type = ARPHRD_IEEE80211_RADIOTAP; 11582 11583 priv->prom_net_dev->open = ipw_prom_open;
-1
drivers/net/wireless/iwlwifi/Kconfig
··· 35 35 bool "Enable 802.11n HT features in iwl4965 driver" 36 36 depends on EXPERIMENTAL 37 37 depends on IWL4965 && IWL4965_QOS 38 - depends on n 39 38 ---help--- 40 39 This option enables IEEE 802.11n High Throughput features 41 40 for the iwl4965 driver.
+1 -1
drivers/net/wireless/libertas/assoc.c
··· 541 541 } 542 542 543 543 if (find_any_ssid) { 544 - u8 new_mode; 544 + u8 new_mode = assoc_req->mode; 545 545 546 546 ret = lbs_find_best_network_ssid(priv, assoc_req->ssid, 547 547 &assoc_req->ssid_len, assoc_req->mode, &new_mode);
+1 -3
drivers/net/wireless/rt2x00/rt61pci.c
··· 2399 2399 * beacon frame. 2400 2400 */ 2401 2401 if (skb_headroom(skb) < TXD_DESC_SIZE) { 2402 - if (pskb_expand_head(skb, TXD_DESC_SIZE, 0, GFP_ATOMIC)) { 2403 - dev_kfree_skb(skb); 2402 + if (pskb_expand_head(skb, TXD_DESC_SIZE, 0, GFP_ATOMIC)) 2404 2403 return -ENOMEM; 2405 - } 2406 2404 } 2407 2405 2408 2406 /*
+7 -6
drivers/ssb/driver_mipscore.c
··· 109 109 clear_irq(bus, oldirq); 110 110 111 111 /* assign the new one */ 112 - if (irq == 0) 113 - ssb_write32(mdev, SSB_INTVEC, ((1 << irqflag) & ssb_read32(mdev, SSB_INTVEC))); 114 - 115 - irqflag <<= ipsflag_irq_shift[irq]; 116 - irqflag |= (ssb_read32(mdev, SSB_IPSFLAG) & ~ipsflag_irq_mask[irq]); 117 - ssb_write32(mdev, SSB_IPSFLAG, irqflag); 112 + if (irq == 0) { 113 + ssb_write32(mdev, SSB_INTVEC, ((1 << irqflag) | ssb_read32(mdev, SSB_INTVEC))); 114 + } else { 115 + irqflag <<= ipsflag_irq_shift[irq]; 116 + irqflag |= (ssb_read32(mdev, SSB_IPSFLAG) & ~ipsflag_irq_mask[irq]); 117 + ssb_write32(mdev, SSB_IPSFLAG, irqflag); 118 + } 118 119 } 119 120 120 121 static void ssb_mips_serial_init(struct ssb_mipscore *mcore)
+1 -1
drivers/ssb/driver_pcicore.c
··· 551 551 } else { 552 552 tmp = ssb_read32(dev, SSB_TPSFLAG); 553 553 tmp &= SSB_TPSFLAG_BPFLAG; 554 - intvec |= tmp; 554 + intvec |= (1 << tmp); 555 555 } 556 556 ssb_write32(pdev, SSB_INTVEC, intvec); 557 557 }
+6
drivers/ssb/main.c
··· 1044 1044 goto out; 1045 1045 1046 1046 cc = &bus->chipco; 1047 + 1048 + if (!cc->dev) 1049 + goto out; 1050 + if (cc->dev->id.revision < 5) 1051 + goto out; 1052 + 1047 1053 ssb_chipco_set_clockmode(cc, SSB_CLKMODE_SLOW); 1048 1054 err = ssb_pci_xtal(bus, SSB_GPIO_XTAL | SSB_GPIO_PLL, 0); 1049 1055 if (err)
+35 -8
net/mac80211/ieee80211_sta.c
··· 312 312 } 313 313 } 314 314 315 - 316 - static u32 ieee80211_handle_erp_ie(struct ieee80211_sub_if_data *sdata, 317 - u8 erp_value) 315 + static u32 ieee80211_handle_protect_preamb(struct ieee80211_sub_if_data *sdata, 316 + bool use_protection, 317 + bool use_short_preamble) 318 318 { 319 319 struct ieee80211_bss_conf *bss_conf = &sdata->bss_conf; 320 320 struct ieee80211_if_sta *ifsta = &sdata->u.sta; 321 - bool use_protection = (erp_value & WLAN_ERP_USE_PROTECTION) != 0; 322 - bool use_short_preamble = (erp_value & WLAN_ERP_BARKER_PREAMBLE) == 0; 323 321 DECLARE_MAC_BUF(mac); 324 322 u32 changed = 0; 325 323 ··· 343 345 } 344 346 bss_conf->use_short_preamble = use_short_preamble; 345 347 changed |= BSS_CHANGED_ERP_PREAMBLE; 348 + } 349 + 350 + return changed; 351 + } 352 + 353 + static u32 ieee80211_handle_erp_ie(struct ieee80211_sub_if_data *sdata, 354 + u8 erp_value) 355 + { 356 + bool use_protection = (erp_value & WLAN_ERP_USE_PROTECTION) != 0; 357 + bool use_short_preamble = (erp_value & WLAN_ERP_BARKER_PREAMBLE) == 0; 358 + 359 + return ieee80211_handle_protect_preamb(sdata, 360 + use_protection, use_short_preamble); 361 + } 362 + 363 + static u32 ieee80211_handle_bss_capability(struct ieee80211_sub_if_data *sdata, 364 + struct ieee80211_sta_bss *bss) 365 + { 366 + u32 changed = 0; 367 + 368 + if (bss->has_erp_value) 369 + changed |= ieee80211_handle_erp_ie(sdata, bss->erp_value); 370 + else { 371 + u16 capab = bss->capability; 372 + changed |= ieee80211_handle_protect_preamb(sdata, false, 373 + (capab & WLAN_CAPABILITY_SHORT_PREAMBLE) != 0); 346 374 } 347 375 348 376 return changed; ··· 492 468 local->hw.conf.channel, 493 469 ifsta->ssid, ifsta->ssid_len); 494 470 if (bss) { 495 - if (bss->has_erp_value) 496 - changed |= ieee80211_handle_erp_ie( 497 - sdata, bss->erp_value); 471 + changed |= ieee80211_handle_bss_capability(sdata, bss); 498 472 ieee80211_rx_bss_put(dev, bss); 499 473 } 500 474 ··· 2138 2116 2139 2117 if (elems.erp_info && elems.erp_info_len >= 1) 2140 2118 changed |= ieee80211_handle_erp_ie(sdata, elems.erp_info[0]); 2119 + else { 2120 + u16 capab = le16_to_cpu(mgmt->u.beacon.capab_info); 2121 + changed |= ieee80211_handle_protect_preamb(sdata, false, 2122 + (capab & WLAN_CAPABILITY_SHORT_PREAMBLE) != 0); 2123 + } 2141 2124 2142 2125 if (elems.ht_cap_elem && elems.ht_info_elem && 2143 2126 elems.wmm_param && local->ops->conf_ht &&
+1 -1
net/wireless/nl80211.c
··· 945 945 nla_len(info->attrs[NL80211_ATTR_STA_SUPPORTED_RATES]); 946 946 params.listen_interval = 947 947 nla_get_u16(info->attrs[NL80211_ATTR_STA_LISTEN_INTERVAL]); 948 - params.listen_interval = nla_get_u16(info->attrs[NL80211_ATTR_STA_AID]); 948 + params.aid = nla_get_u16(info->attrs[NL80211_ATTR_STA_AID]); 949 949 950 950 if (parse_station_flags(info->attrs[NL80211_ATTR_STA_FLAGS], 951 951 &params.station_flags))