aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/carl9170/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/ath/carl9170/main.c')
-rw-r--r--drivers/net/wireless/ath/carl9170/main.c11
1 files changed, 1 insertions, 10 deletions
diff --git a/drivers/net/wireless/ath/carl9170/main.c b/drivers/net/wireless/ath/carl9170/main.c
index f8ded84b7be8..ef5b6dc7b7f1 100644
--- a/drivers/net/wireless/ath/carl9170/main.c
+++ b/drivers/net/wireless/ath/carl9170/main.c
@@ -1430,18 +1430,10 @@ static int carl9170_op_ampdu_action(struct ieee80211_hw *hw,
1430 if (!sta_info->ht_sta) 1430 if (!sta_info->ht_sta)
1431 return -EOPNOTSUPP; 1431 return -EOPNOTSUPP;
1432 1432
1433 rcu_read_lock();
1434 if (rcu_dereference(sta_info->agg[tid])) {
1435 rcu_read_unlock();
1436 return -EBUSY;
1437 }
1438
1439 tid_info = kzalloc(sizeof(struct carl9170_sta_tid), 1433 tid_info = kzalloc(sizeof(struct carl9170_sta_tid),
1440 GFP_ATOMIC); 1434 GFP_ATOMIC);
1441 if (!tid_info) { 1435 if (!tid_info)
1442 rcu_read_unlock();
1443 return -ENOMEM; 1436 return -ENOMEM;
1444 }
1445 1437
1446 tid_info->hsn = tid_info->bsn = tid_info->snx = (*ssn); 1438 tid_info->hsn = tid_info->bsn = tid_info->snx = (*ssn);
1447 tid_info->state = CARL9170_TID_STATE_PROGRESS; 1439 tid_info->state = CARL9170_TID_STATE_PROGRESS;
@@ -1460,7 +1452,6 @@ static int carl9170_op_ampdu_action(struct ieee80211_hw *hw,
1460 list_add_tail_rcu(&tid_info->list, &ar->tx_ampdu_list); 1452 list_add_tail_rcu(&tid_info->list, &ar->tx_ampdu_list);
1461 rcu_assign_pointer(sta_info->agg[tid], tid_info); 1453 rcu_assign_pointer(sta_info->agg[tid], tid_info);
1462 spin_unlock_bh(&ar->tx_ampdu_list_lock); 1454 spin_unlock_bh(&ar->tx_ampdu_list_lock);
1463 rcu_read_unlock();
1464 1455
1465 ieee80211_start_tx_ba_cb_irqsafe(vif, sta->addr, tid); 1456 ieee80211_start_tx_ba_cb_irqsafe(vif, sta->addr, tid);
1466 break; 1457 break;