···254254 int r;255255256256 sband = wiphy->bands[IEEE80211_BAND_2GHZ];257257+ if (!sband)258258+ return;257259258260 /*259261 * If no country IE has been received always enable active scan
+13-2
drivers/net/wireless/b43/xmit.c
···175175 }176176}177177178178+/* TODO: verify if needed for SSLPN or LCN */178179static u16 b43_generate_tx_phy_ctl1(struct b43_wldev *dev, u8 bitrate)179180{180181 const struct b43_phy *phy = &dev->phy;···257256 unsigned int plcp_fragment_len;258257 u32 mac_ctl = 0;259258 u16 phy_ctl = 0;259259+ bool fill_phy_ctl1 = (phy->type == B43_PHYTYPE_LP ||260260+ phy->type == B43_PHYTYPE_N ||261261+ phy->type == B43_PHYTYPE_HT);260262 u8 extra_ft = 0;261263 struct ieee80211_rate *txrate;262264 struct ieee80211_tx_rate *rates;···535531 extra_ft |= B43_TXH_EFT_RTSFB_CCK;536532537533 if (rates[0].flags & IEEE80211_TX_RC_USE_RTS_CTS &&538538- phy->type == B43_PHYTYPE_N) {534534+ fill_phy_ctl1) {539535 txhdr->phy_ctl1_rts = cpu_to_le16(540536 b43_generate_tx_phy_ctl1(dev, rts_rate));541537 txhdr->phy_ctl1_rts_fb = cpu_to_le16(···556552 break;557553 }558554559559- if (phy->type == B43_PHYTYPE_N) {555555+ if (fill_phy_ctl1) {560556 txhdr->phy_ctl1 =561557 cpu_to_le16(b43_generate_tx_phy_ctl1(dev, rate));562558 txhdr->phy_ctl1_fb =···740736741737 /* Link quality statistics */742738 switch (chanstat & B43_RX_CHAN_PHYTYPE) {739739+ case B43_PHYTYPE_HT:740740+ /* TODO: is max the right choice? */741741+ status.signal = max_t(__s8,742742+ max(rxhdr->phy_ht_power0, rxhdr->phy_ht_power1),743743+ rxhdr->phy_ht_power2);744744+ break;743745 case B43_PHYTYPE_N:746746+ /* Broadcom has code for min and avg, but always uses max */744747 if (rxhdr->power0 == 16 || rxhdr->power0 == 32)745748 status.signal = max(rxhdr->power1, rxhdr->power2);746749 else
+15-1
drivers/net/wireless/b43/xmit.h
···249249 } __packed;250250 } __packed;251251 union {252252+ /* HT-PHY */253253+ struct {254254+ PAD_BYTES(1);255255+ __s8 phy_ht_power0;256256+ } __packed;257257+252258 /* RSSI for N-PHYs */253259 struct {254260 __s8 power2;···263257264258 __le16 phy_status2; /* PHY RX Status 2 */265259 } __packed;266266- __le16 phy_status3; /* PHY RX Status 3 */260260+ union {261261+ /* HT-PHY */262262+ struct {263263+ __s8 phy_ht_power1;264264+ __s8 phy_ht_power2;265265+ } __packed;266266+267267+ __le16 phy_status3; /* PHY RX Status 3 */268268+ } __packed;267269 union {268270 /* Tested with 598.314, 644.1001 and 666.2 */269271 struct {
···559559 break;560560 }561561 /* Fail if SSID isn't present in the filters */562562- if (j == req->n_ssids) {562562+ if (j == cmd->n_ssids) {563563 ret = -EINVAL;564564 goto out_free;565565 }
···456456 * as the AC bitmap in the QoS info field457457 * @max_sp: max Service Period. same format as the MAX_SP in the458458 * QoS info field (but already shifted down)459459+ * @sta_modify_mask: bitmap indicating which parameters changed460460+ * (for those that don't have a natural "no change" value),461461+ * see &enum station_parameters_apply_mask459462 */460463struct station_parameters {461464 u8 *supported_rates;···618615 * user space MLME/SME implementation. The information is provided for619616 * the cfg80211_new_sta() calls to notify user space of the IEs.620617 * @assoc_req_ies_len: Length of assoc_req_ies buffer in octets.618618+ * @sta_flags: station flags mask & values621619 */622620struct station_info {623621 u32 filled;
+1-1
net/bluetooth/hci_conn.c
···673673 goto encrypt;674674675675auth:676676- if (test_bit(HCI_CONN_ENCRYPT_PEND, &conn->pend))676676+ if (test_and_set_bit(HCI_CONN_ENCRYPT_PEND, &conn->pend))677677 return 0;678678679679 if (!hci_conn_auth(conn, sec_level, auth_type))
···14871487 int i, j, err;14881488 bool have_higher_than_11mbit = false;14891489 u16 ap_ht_cap_flags;14901490+ int min_rate = INT_MAX, min_rate_index = -1;1490149114911492 /* AssocResp and ReassocResp have identical structure */14921493···15541553 rates |= BIT(j);15551554 if (is_basic)15561555 basic_rates |= BIT(j);15561556+ if (rate < min_rate) {15571557+ min_rate = rate;15581558+ min_rate_index = j;15591559+ }15571560 break;15581561 }15591562 }···15751570 rates |= BIT(j);15761571 if (is_basic)15771572 basic_rates |= BIT(j);15731573+ if (rate < min_rate) {15741574+ min_rate = rate;15751575+ min_rate_index = j;15761576+ }15781577 break;15791578 }15801579 }15801580+ }15811581+15821582+ /*15831583+ * some buggy APs don't advertise basic_rates. use the lowest15841584+ * supported rate instead.15851585+ */15861586+ if (unlikely(!basic_rates) && min_rate_index >= 0) {15871587+ printk(KERN_DEBUG "%s: No basic rates in AssocResp. "15881588+ "Using min supported rate instead.\n", sdata->name);15891589+ basic_rates = BIT(min_rate_index);15811590 }1582159115831592 sta->sta.supp_rates[wk->chan->band] = rates;
+4-4
net/mac80211/sta_info.c
···13541354 * Use MoreData flag to indicate whether there are13551355 * more buffered frames for this STA13561356 */13571357- if (!more_data)13581358- hdr->frame_control &=13591359- cpu_to_le16(~IEEE80211_FCTL_MOREDATA);13601360- else13571357+ if (more_data || !skb_queue_empty(&frames))13611358 hdr->frame_control |=13621359 cpu_to_le16(IEEE80211_FCTL_MOREDATA);13601360+ else13611361+ hdr->frame_control &=13621362+ cpu_to_le16(~IEEE80211_FCTL_MOREDATA);1363136313641364 if (ieee80211_is_data_qos(hdr->frame_control) ||13651365 ieee80211_is_qos_nullfunc(hdr->frame_control))