···679679 return rate;680680681681 if (rate_table->info[rate].valid_single_stream &&682682- !(ath_rc_priv->ht_cap & WLAN_RC_DS_FLAG));682682+ !(ath_rc_priv->ht_cap & WLAN_RC_DS_FLAG))683683 return rate;684684685685 /* This should not happen */
+13-2
drivers/net/wireless/b43/dma.c
···11571157}1158115811591159static int dma_tx_fragment(struct b43_dmaring *ring,11601160- struct sk_buff *skb)11601160+ struct sk_buff **in_skb)11611161{11621162+ struct sk_buff *skb = *in_skb;11621163 const struct b43_dma_ops *ops = ring->ops;11631164 struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);11641165 u8 *header;···12251224 }1226122512271226 memcpy(skb_put(bounce_skb, skb->len), skb->data, skb->len);12271227+ memcpy(bounce_skb->cb, skb->cb, sizeof(skb->cb));12281228+ bounce_skb->dev = skb->dev;12291229+ skb_set_queue_mapping(bounce_skb, skb_get_queue_mapping(skb));12301230+ info = IEEE80211_SKB_CB(bounce_skb);12311231+12281232 dev_kfree_skb_any(skb);12291233 skb = bounce_skb;12341234+ *in_skb = bounce_skb;12301235 meta->skb = skb;12311236 meta->dmaaddr = map_descbuffer(ring, skb->data, skb->len, 1);12321237 if (b43_dma_mapping_error(ring, meta->dmaaddr, skb->len, 1)) {···13621355 * static, so we don't need to store it per frame. */13631356 ring->queue_prio = skb_get_queue_mapping(skb);1364135713651365- err = dma_tx_fragment(ring, skb);13581358+ /* dma_tx_fragment might reallocate the skb, so invalidate pointers pointing13591359+ * into the skb data or cb now. */13601360+ hdr = NULL;13611361+ info = NULL;13621362+ err = dma_tx_fragment(ring, &skb);13661363 if (unlikely(err == -ENOKEY)) {13671364 /* Drop this packet, as we don't have the encryption key13681365 * anymore and must not transmit it unencrypted. */
+4-1
drivers/net/wireless/ipw2x00/ipw2100.c
···6325632563266326 fail:63276327 if (dev) {63286328- if (registered)63286328+ if (registered) {63296329+ unregister_ieee80211(priv->ieee);63296330 unregister_netdev(dev);63316331+ }6330633263316333 ipw2100_hw_stop_adapter(priv);63326334···63856383 /* Unregister the device first - this results in close()63866384 * being called if the device is open. If we free storage63876385 * first, then close() will crash. */63866386+ unregister_ieee80211(priv->ieee);63886387 unregister_netdev(dev);6389638863906389 /* ipw2100_down will ensure that there is no more pending work
···666666667667 state = &sta->ampdu_mlme.tid_state_tx[tid];668668669669+ del_timer_sync(&sta->ampdu_mlme.tid_tx[tid]->addba_resp_timer);670670+669671 spin_lock_bh(&sta->lock);670672671671- if (!(*state & HT_ADDBA_REQUESTED_MSK)) {672672- spin_unlock_bh(&sta->lock);673673- return;674674- }673673+ if (!(*state & HT_ADDBA_REQUESTED_MSK))674674+ goto timer_still_needed;675675676676 if (mgmt->u.action.u.addba_resp.dialog_token !=677677 sta->ampdu_mlme.tid_tx[tid]->dialog_token) {678678- spin_unlock_bh(&sta->lock);679678#ifdef CONFIG_MAC80211_HT_DEBUG680679 printk(KERN_DEBUG "wrong addBA response token, tid %d\n", tid);681680#endif /* CONFIG_MAC80211_HT_DEBUG */682682- return;681681+ goto timer_still_needed;683682 }684683685685- del_timer_sync(&sta->ampdu_mlme.tid_tx[tid]->addba_resp_timer);686684#ifdef CONFIG_MAC80211_HT_DEBUG687685 printk(KERN_DEBUG "switched off addBA timer for tid %d \n", tid);688686#endif /* CONFIG_MAC80211_HT_DEBUG */687687+689688 if (le16_to_cpu(mgmt->u.action.u.addba_resp.status)690689 == WLAN_STATUS_SUCCESS) {691690 u8 curstate = *state;···698699 } else {699700 ___ieee80211_stop_tx_ba_session(sta, tid, WLAN_BACK_INITIATOR);700701 }702702+703703+ goto out;704704+705705+ timer_still_needed:706706+ add_timer(&sta->ampdu_mlme.tid_tx[tid]->addba_resp_timer);707707+ out:701708 spin_unlock_bh(&sta->lock);702709}
+3-3
net/mac80211/cfg.c
···7272 struct ieee80211_sub_if_data *sdata;7373 int ret;74747575+ if (netif_running(dev))7676+ return -EBUSY;7777+7578 if (!nl80211_type_check(type))7679 return -EINVAL;7780···8380 ret = ieee80211_if_change_type(sdata, type);8481 if (ret)8582 return ret;8686-8787- if (netif_running(sdata->dev))8888- return -EBUSY;89839084 if (ieee80211_vif_is_mesh(&sdata->vif) && params->mesh_id_len)9185 ieee80211_sdata_set_mesh_id(sdata,
+1-1
net/mac80211/ht.c
···153153 if (net_ratelimit())154154 printk(KERN_DEBUG "delba from %pM (%s) tid %d reason code %d\n",155155 mgmt->sa, initiator ? "initiator" : "recipient", tid,156156- mgmt->u.action.u.delba.reason_code);156156+ le16_to_cpu(mgmt->u.action.u.delba.reason_code));157157#endif /* CONFIG_MAC80211_HT_DEBUG */158158159159 if (initiator == WLAN_BACK_INITIATOR)