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

+32 -20
+1 -1
drivers/net/wireless/ath/ath9k/recv.c
··· 506 "confusing the DMA engine when we start RX up\n"); 507 ATH_DBG_WARN_ON_ONCE(!stopped); 508 } 509 - return stopped || reset; 510 } 511 512 void ath_flushrecv(struct ath_softc *sc)
··· 506 "confusing the DMA engine when we start RX up\n"); 507 ATH_DBG_WARN_ON_ONCE(!stopped); 508 } 509 + return stopped && !reset; 510 } 511 512 void ath_flushrecv(struct ath_softc *sc)
+7 -3
drivers/net/wireless/iwlegacy/iwl-4965-tx.c
··· 1127 q->read_ptr = iwl_legacy_queue_inc_wrap(q->read_ptr, q->n_bd)) { 1128 1129 tx_info = &txq->txb[txq->q.read_ptr]; 1130 - iwl4965_tx_status(priv, tx_info, 1131 - txq_id >= IWL4965_FIRST_AMPDU_QUEUE); 1132 1133 hdr = (struct ieee80211_hdr *)tx_info->skb->data; 1134 - if (hdr && ieee80211_is_data_qos(hdr->frame_control)) 1135 nfreed++; 1136 tx_info->skb = NULL; 1137 1138 priv->cfg->ops->lib->txq_free_tfd(priv, txq);
··· 1127 q->read_ptr = iwl_legacy_queue_inc_wrap(q->read_ptr, q->n_bd)) { 1128 1129 tx_info = &txq->txb[txq->q.read_ptr]; 1130 + 1131 + if (WARN_ON_ONCE(tx_info->skb == NULL)) 1132 + continue; 1133 1134 hdr = (struct ieee80211_hdr *)tx_info->skb->data; 1135 + if (ieee80211_is_data_qos(hdr->frame_control)) 1136 nfreed++; 1137 + 1138 + iwl4965_tx_status(priv, tx_info, 1139 + txq_id >= IWL4965_FIRST_AMPDU_QUEUE); 1140 tx_info->skb = NULL; 1141 1142 priv->cfg->ops->lib->txq_free_tfd(priv, txq);
+1 -6
drivers/net/wireless/iwlwifi/iwl-agn-rxon.c
··· 335 struct ieee80211_channel *channel = conf->channel; 336 const struct iwl_channel_info *ch_info; 337 int ret = 0; 338 - bool ht_changed[NUM_IWL_RXON_CTX] = {}; 339 340 IWL_DEBUG_MAC80211(priv, "changed %#x", changed); 341 ··· 382 383 for_each_context(priv, ctx) { 384 /* Configure HT40 channels */ 385 - if (ctx->ht.enabled != conf_is_ht(conf)) { 386 ctx->ht.enabled = conf_is_ht(conf); 387 - ht_changed[ctx->ctxid] = true; 388 - } 389 390 if (ctx->ht.enabled) { 391 if (conf_is_ht40_minus(conf)) { ··· 452 if (!memcmp(&ctx->staging, &ctx->active, sizeof(ctx->staging))) 453 continue; 454 iwlagn_commit_rxon(priv, ctx); 455 - if (ht_changed[ctx->ctxid]) 456 - iwlagn_update_qos(priv, ctx); 457 } 458 out: 459 mutex_unlock(&priv->mutex);
··· 335 struct ieee80211_channel *channel = conf->channel; 336 const struct iwl_channel_info *ch_info; 337 int ret = 0; 338 339 IWL_DEBUG_MAC80211(priv, "changed %#x", changed); 340 ··· 383 384 for_each_context(priv, ctx) { 385 /* Configure HT40 channels */ 386 + if (ctx->ht.enabled != conf_is_ht(conf)) 387 ctx->ht.enabled = conf_is_ht(conf); 388 389 if (ctx->ht.enabled) { 390 if (conf_is_ht40_minus(conf)) { ··· 455 if (!memcmp(&ctx->staging, &ctx->active, sizeof(ctx->staging))) 456 continue; 457 iwlagn_commit_rxon(priv, ctx); 458 } 459 out: 460 mutex_unlock(&priv->mutex);
+7 -3
drivers/net/wireless/iwlwifi/iwl-agn-tx.c
··· 1224 q->read_ptr = iwl_queue_inc_wrap(q->read_ptr, q->n_bd)) { 1225 1226 tx_info = &txq->txb[txq->q.read_ptr]; 1227 - iwlagn_tx_status(priv, tx_info, 1228 - txq_id >= IWLAGN_FIRST_AMPDU_QUEUE); 1229 1230 hdr = (struct ieee80211_hdr *)tx_info->skb->data; 1231 - if (hdr && ieee80211_is_data_qos(hdr->frame_control)) 1232 nfreed++; 1233 tx_info->skb = NULL; 1234 1235 if (priv->cfg->ops->lib->txq_inval_byte_cnt_tbl)
··· 1224 q->read_ptr = iwl_queue_inc_wrap(q->read_ptr, q->n_bd)) { 1225 1226 tx_info = &txq->txb[txq->q.read_ptr]; 1227 + 1228 + if (WARN_ON_ONCE(tx_info->skb == NULL)) 1229 + continue; 1230 1231 hdr = (struct ieee80211_hdr *)tx_info->skb->data; 1232 + if (ieee80211_is_data_qos(hdr->frame_control)) 1233 nfreed++; 1234 + 1235 + iwlagn_tx_status(priv, tx_info, 1236 + txq_id >= IWLAGN_FIRST_AMPDU_QUEUE); 1237 tx_info->skb = NULL; 1238 1239 if (priv->cfg->ops->lib->txq_inval_byte_cnt_tbl)
+2 -3
net/bluetooth/hci_core.c
··· 587 hci_req_cancel(hdev, ENODEV); 588 hci_req_lock(hdev); 589 590 - /* Stop timer, it might be running */ 591 - del_timer_sync(&hdev->cmd_timer); 592 - 593 if (!test_and_clear_bit(HCI_UP, &hdev->flags)) { 594 hci_req_unlock(hdev); 595 return 0; 596 } ··· 627 628 /* Drop last sent command */ 629 if (hdev->sent_cmd) { 630 kfree_skb(hdev->sent_cmd); 631 hdev->sent_cmd = NULL; 632 }
··· 587 hci_req_cancel(hdev, ENODEV); 588 hci_req_lock(hdev); 589 590 if (!test_and_clear_bit(HCI_UP, &hdev->flags)) { 591 + del_timer_sync(&hdev->cmd_timer); 592 hci_req_unlock(hdev); 593 return 0; 594 } ··· 629 630 /* Drop last sent command */ 631 if (hdev->sent_cmd) { 632 + del_timer_sync(&hdev->cmd_timer); 633 kfree_skb(hdev->sent_cmd); 634 hdev->sent_cmd = NULL; 635 }
-2
net/bluetooth/hci_event.c
··· 2387 if (!conn) 2388 goto unlock; 2389 2390 - hci_conn_hold(conn); 2391 - 2392 conn->remote_cap = ev->capability; 2393 conn->remote_oob = ev->oob_data; 2394 conn->remote_auth = ev->authentication;
··· 2387 if (!conn) 2388 goto unlock; 2389 2390 conn->remote_cap = ev->capability; 2391 conn->remote_oob = ev->oob_data; 2392 conn->remote_auth = ev->authentication;
+1
net/bluetooth/l2cap_core.c
··· 1051 tx_skb = skb_clone(skb, GFP_ATOMIC); 1052 bt_cb(skb)->retries++; 1053 control = get_unaligned_le16(tx_skb->data + L2CAP_HDR_SIZE); 1054 1055 if (pi->conn_state & L2CAP_CONN_SEND_FBIT) { 1056 control |= L2CAP_CTRL_FINAL;
··· 1051 tx_skb = skb_clone(skb, GFP_ATOMIC); 1052 bt_cb(skb)->retries++; 1053 control = get_unaligned_le16(tx_skb->data + L2CAP_HDR_SIZE); 1054 + control &= L2CAP_CTRL_SAR; 1055 1056 if (pi->conn_state & L2CAP_CONN_SEND_FBIT) { 1057 control |= L2CAP_CTRL_FINAL;
+9
net/bluetooth/sco.c
··· 369 370 case BT_CONNECTED: 371 case BT_CONFIG: 372 case BT_CONNECT: 373 case BT_DISCONN: 374 sco_chan_del(sk, ECONNRESET);
··· 369 370 case BT_CONNECTED: 371 case BT_CONFIG: 372 + if (sco_pi(sk)->conn) { 373 + sk->sk_state = BT_DISCONN; 374 + sco_sock_set_timer(sk, SCO_DISCONN_TIMEOUT); 375 + hci_conn_put(sco_pi(sk)->conn->hcon); 376 + sco_pi(sk)->conn = NULL; 377 + } else 378 + sco_chan_del(sk, ECONNRESET); 379 + break; 380 + 381 case BT_CONNECT: 382 case BT_DISCONN: 383 sco_chan_del(sk, ECONNRESET);
+2
net/mac80211/cfg.c
··· 1504 enum ieee80211_smps_mode old_req; 1505 int err; 1506 1507 old_req = sdata->u.mgd.req_smps; 1508 sdata->u.mgd.req_smps = smps_mode; 1509
··· 1504 enum ieee80211_smps_mode old_req; 1505 int err; 1506 1507 + lockdep_assert_held(&sdata->u.mgd.mtx); 1508 + 1509 old_req = sdata->u.mgd.req_smps; 1510 sdata->u.mgd.req_smps = smps_mode; 1511
+2 -2
net/mac80211/debugfs_netdev.c
··· 177 if (sdata->vif.type != NL80211_IFTYPE_STATION) 178 return -EOPNOTSUPP; 179 180 - mutex_lock(&local->iflist_mtx); 181 err = __ieee80211_request_smps(sdata, smps_mode); 182 - mutex_unlock(&local->iflist_mtx); 183 184 return err; 185 }
··· 177 if (sdata->vif.type != NL80211_IFTYPE_STATION) 178 return -EOPNOTSUPP; 179 180 + mutex_lock(&sdata->u.mgd.mtx); 181 err = __ieee80211_request_smps(sdata, smps_mode); 182 + mutex_unlock(&sdata->u.mgd.mtx); 183 184 return err; 185 }